1 Star 0 Fork 101

yourkeychen / batch-scheduler

forked from hzwy23 / batch-scheduler 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Wiki Page

国内码云 托管地址

github 托管地址

新版本开发中,主要涉及到图形化任务流程配置,fork后,请保持联系,随时会有代码更新,老版本请在release中下载。

在下Java水平有限,项目中出现错误和不规范的地方,请不吝赐教,感激不尽

Java版本

JDK1.8

如果jdk是1.9,请在pom.xml文件中加入下边的以来:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>

项目主要功能图:

主菜单界面 调度主界面 系统管理主界面 帮助主界面 任务组历史界面

batch-scheduler 项目简介

这是一个企业级批次调度系统, 在成熟的spring框架基础上,实现ETL调度服务. 权限管理部分,采用asofdate hauth项目. batch-schduler与常见的任务调度系统侧重点不同,这个系统设计的初衷,是解决大批量存在依赖关系得任务调度。并不是为了解决定时任务调度。所以,batch-scheduler系统与通常的定时任务调度系统存在一些差异。

引用组件

  1. spring-boot spring社区中一款优秀的快速开发框架
  2. spring-batch 一款非常优秀的批处理框架
  3. spring-security 用户认证管理
  4. quartz 调度器
  5. swagger2-ui

主要功能点介绍

调度服务主要业务流程

批次     任务组     job信息
batch 包含 group 包含 job
批次中多个group需要设置依赖关系,否则并行执行
任务组中多个job需要设置依赖关系,否则并行执行

ETL调度系统,最小的调度单元job,job可以是下边几种类型:

> 数据库存储过程 (已实现,单元测试完成,通过)
> shell脚本 (已实现,单元测试完成,通过)
> CMD批次处理脚本 (已实现,单元测试完成,通过)
> 二进制可执行程序 (已实现,未测试)
> JAR可执行文件 (已实现,未测试)

在job之上是任务组, 任务组是对任务的一个打包处理, 同一个任务,可以被任务组包含多次. 任务组内对每个job设置上下依赖关系,ETL调度引擎,会根据依赖关系执行job.

在任务组之上是批次, 同一任务组,在一个批次中可以配置多次, 调度引擎,会根据任务组的依赖关系,解析依赖,执行任务组中的job.

当一个批次被运行起来时, 会首先解析批次中的任务组依赖关系, 根据依赖关系, 找到最顶层的任务组,如果顶层是多个任务组,则并发启动多个任务组. 任务组被启动后,调度引擎会解析任务组中的任务依赖关系,执行任务组中最顶层的job,当上一个job执行完成后,将会自动触发下一个job, 当一个任务组中的job全部执行完成后,任务组状态被设置成"已完成", 调度器将会解析下一个可以运行的任务组. 按照这个执行逻辑,直到所有的任务组中任务执行完成. 当所有任务执行完成后,调度器退出调度.

注意:一旦出现某个job执行失败,调度器将会停止调度这个批次. 其他正常运行的批次不受影响.

创建工程

  1. batch-scheduler采用maven管理依赖关系,所以clone项目后,请安装maven工具,maven将会自动下载依赖包.

  2. 数据库表结构在项目db目录mysql_init.sql中.导入到mysql数据库中方法:

mysql -uroot -p dbname < mysql_init.sql

请替换dbname为您数据库名字.

spring-boot参数配置文件在application.properties中.请按照spring的规范配置.

默认启动端口号是: 8023

项目启动后,在浏览器中输入: http://localhost:8023

登录用户名: admin

密码: hzwy23

登录用户名: demo

密码: 123456

编译项目,请确保您能够连接maven仓库

mvn clean package -DskipTests=true

交流方式

e-mail: hzwy23@163.com

QQ群:118183812

修改历史:

2017-11-29 添加图形化任务流程配置功能,正在开发中...

2017-11-02 移除项目中sun.misc.BASE64Encoder和sun.misc.BASE64Decoder,替换成apache的commons-codec

2017-09-12 修改默认端口为8023,关闭https,使用http协议。如需开启https,请修改配置

MIT License Copyright (c) 2017 zhanwei Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

这是一个企业级批次调度系统, 在成熟的spring框架基础上,实现批次调度服务 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/yourkeychen/asofdate4etl.git
git@gitee.com:yourkeychen/asofdate4etl.git
yourkeychen
asofdate4etl
batch-scheduler
master

搜索帮助

14c37bed 8189591 565d56ea 8189591