|
|
@@ -1,41 +1,45 @@
|
|
1
|
1
|
# 分布式任务调度平台xxl-job
|
|
2
|
|
-github地址:https://github.com/xuxueli/xxl-job
|
|
3
|
|
-git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job
|
|
|
2
|
+- 源码地址
|
|
|
3
|
+- github地址:https://github.com/xuxueli/xxl-job
|
|
|
4
|
+- git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job
|
|
4
|
5
|
|
|
5
|
|
-oschina地址:http://my.oschina.net/xuxueli/blog/690978
|
|
6
|
|
-cnblogs地址:http://www.cnblogs.com/xuxueli/p/5021979.html
|
|
|
6
|
+- 博客地址
|
|
|
7
|
+- oschina地址:http://my.oschina.net/xuxueli/blog/690978
|
|
|
8
|
+- cnblogs地址:http://www.cnblogs.com/xuxueli/p/5021979.html
|
|
|
9
|
+- csdn地址:http://blog.csdn.net/xuxueli0323/article/details/51674330
|
|
|
10
|
+
|
|
|
11
|
+- 技术交流群(仅作技术交流):367260654 [](http://shang.qq.com/wpa/qunwpa?idkey=4686e3fe01118445c75673a66b4cc6b2c7ce0641528205b6f403c179062b0a52)
|
|
7
|
12
|
|
|
8
|
|
-技术交流群(仅作技术交流):367260654 [](http://shang.qq.com/wpa/qunwpa?idkey=4686e3fe01118445c75673a66b4cc6b2c7ce0641528205b6f403c179062b0a52)
|
|
9
|
13
|
|
|
10
|
14
|
# 特点:
|
|
11
|
|
- 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
|
|
12
|
|
- 2、动态:支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,即时生效;
|
|
13
|
|
- 3、调度HA:“调度中心”基于集群Quartz实现,可保证调度中心HA;
|
|
14
|
|
- 4、任务HA:任务支持多地址配置,可保证任务HA(Failover);
|
|
15
|
|
- 5、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性;
|
|
16
|
|
- 6、自定义任务参数:支持在线配置调度任务入参,即时生效;
|
|
17
|
|
- 7、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
|
|
18
|
|
- 8、执行日志:支持在线查看调度结果,并且查看完整的执行日志;
|
|
19
|
|
- 9、邮件报警:任务失败时支持邮件报警,同时可自定义失败次数阀值;
|
|
20
|
|
- 10、支持登录验证;
|
|
21
|
|
- 11、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。
|
|
|
15
|
+- 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
|
|
|
16
|
+- 2、动态:支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,即时生效;
|
|
|
17
|
+- 3、调度HA:“调度中心”基于集群Quartz实现,可保证调度中心HA;
|
|
|
18
|
+- 4、任务HA:任务支持多地址配置,可保证任务HA(Failover);
|
|
|
19
|
+- 5、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性;
|
|
|
20
|
+- 6、自定义任务参数:支持在线配置调度任务入参,即时生效;
|
|
|
21
|
+- 7、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
|
|
|
22
|
+- 8、执行日志:支持在线查看调度结果,并且查看完整的执行日志;
|
|
|
23
|
+- 9、邮件报警:任务失败时支持邮件报警,同时可自定义失败次数阀值;
|
|
|
24
|
+- 10、支持登录验证;
|
|
|
25
|
+- 11、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。
|
|
22
|
26
|
|
|
23
|
27
|
# 新版本 V1.1.x,特性【于V1.1.x版本,XXL-JOB正式应用于我司,内部定制别名为 “Ferrari”,新接入应用推荐使用最新版本V1.3.x】
|
|
24
|
|
- 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
|
|
25
|
|
- 2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效;
|
|
26
|
|
- 3、服务HA:任务信息持久化到mysql中,Job服务天然支持集群,保证服务HA;
|
|
27
|
|
- 4、任务HA:某台Job服务挂掉,任务会平滑分配给其他的某一台存活服务,即使所有服务挂掉,重启时或补偿执行丢失任务;
|
|
28
|
|
- 5、一个任务只会在其中一台服务器上执行;
|
|
29
|
|
- 6、任务串行执行;
|
|
30
|
|
- 7、支持自定义参数;
|
|
31
|
|
- 8、支持远程任务执行终止;
|
|
|
28
|
+- 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
|
|
|
29
|
+- 2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效;
|
|
|
30
|
+- 3、服务HA:任务信息持久化到mysql中,Job服务天然支持集群,保证服务HA;
|
|
|
31
|
+- 4、任务HA:某台Job服务挂掉,任务会平滑分配给其他的某一台存活服务,即使所有服务挂掉,重启时或补偿执行丢失任务;
|
|
|
32
|
+- 5、一个任务只会在其中一台服务器上执行;
|
|
|
33
|
+- 6、任务串行执行;
|
|
|
34
|
+- 7、支持自定义参数;
|
|
|
35
|
+- 8、支持远程任务执行终止;
|
|
32
|
36
|
|
|
33
|
37
|
# 新版本 V1.2.x,新特性
|
|
34
|
|
- 1、支持任务分组;
|
|
35
|
|
- 2、支持“本地任务”、“远程任务”;
|
|
36
|
|
- 3、底层通讯支持两种方式,Servlet方式 + JETTY方式;
|
|
37
|
|
- 4、支持“任务日志”;
|
|
38
|
|
- 5、支持“串行执行”,并行执行;
|
|
|
38
|
+- 1、支持任务分组;
|
|
|
39
|
+- 2、支持“本地任务”、“远程任务”;
|
|
|
40
|
+- 3、底层通讯支持两种方式,Servlet方式 + JETTY方式;
|
|
|
41
|
+- 4、支持“任务日志”;
|
|
|
42
|
+- 5、支持“串行执行”,并行执行;
|
|
39
|
43
|
|
|
40
|
44
|
说明:V1.2版本将系统架构按功能拆分为:
|
|
41
|
45
|
调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求;
|
|
|
@@ -47,37 +51,37 @@ cnblogs地址:http://www.cnblogs.com/xuxueli/p/5021979.html
|
|
47
|
51
|
稳定性;
|
|
48
|
52
|
|
|
49
|
53
|
# 新版本 V1.3.x,新特性
|
|
50
|
|
- 1、遗弃“本地任务”模式,推荐使用“远程任务”,易于系统解耦,任务对应的JobHander统称为“执行器”;
|
|
51
|
|
- 2、遗弃“servlet”方式底层系统通讯,推荐使用JETTY方式,调度+回调双向通讯,重构通讯逻辑;
|
|
52
|
|
- 3、UI交互优化:左侧菜单展开状态优化,菜单项选中状态优化,任务列表打开表格有压缩优化;
|
|
53
|
|
- 4、【重要】“执行器”细分为:BEAN、GLUE两种开发模式,简介见下文:
|
|
|
54
|
+- 1、遗弃“本地任务”模式,推荐使用“远程任务”,易于系统解耦,任务对应的JobHander统称为“执行器”;
|
|
|
55
|
+- 2、遗弃“servlet”方式底层系统通讯,推荐使用JETTY方式,调度+回调双向通讯,重构通讯逻辑;
|
|
|
56
|
+- 3、UI交互优化:左侧菜单展开状态优化,菜单项选中状态优化,任务列表打开表格有压缩优化;
|
|
|
57
|
+- 4、【重要】“执行器”细分为:BEAN、GLUE两种开发模式,简介见下文:
|
|
54
|
58
|
|
|
55
|
59
|
“执行器” 模式简介:
|
|
56
|
60
|
BEAN模式执行器:每个执行器都是Spring的一个Bean实例,XXL-JOB通过注解@JobHander识别和调度执行器;
|
|
57
|
61
|
GLUE模式执行器:每个执行器对应一段代码,在线Web编辑和维护,动态编译生效,执行器负责加载GLUE代码和执行;
|
|
58
|
62
|
|
|
59
|
63
|
# 新版本V1.3.1
|
|
60
|
|
- 1、更新项目目录结构:
|
|
|
64
|
+- 1、更新项目目录结构:
|
|
61
|
65
|
/xxl-job-admin -------------------- 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
|
|
62
|
66
|
/xxl-job-core ----------------------- 公共依赖
|
|
63
|
67
|
/xxl-job-executor-example ------ 【执行器】:负责接收调度请求并执行任务逻辑;
|
|
64
|
68
|
/db ---------------------------------- 建表脚本
|
|
65
|
69
|
/doc --------------------------------- 用户手册
|
|
66
|
|
- 2、在新的目录结构上,升级了用户手册;
|
|
67
|
|
- 3、优化了一些交互和UI;
|
|
|
70
|
+- 2、在新的目录结构上,升级了用户手册;
|
|
|
71
|
+- 3、优化了一些交互和UI;
|
|
68
|
72
|
|
|
69
|
73
|
# 新版本1.3.2
|
|
70
|
|
- 1、调度逻辑进行事务包裹;
|
|
71
|
|
- 2、执行器异步回调执行日志;
|
|
72
|
|
- 3、【重要】在 “调度中心” 支持HA的基础上,扩展执行器的Failover支持,支持配置多执行期地址;
|
|
|
74
|
+- 1、调度逻辑进行事务包裹;
|
|
|
75
|
+- 2、执行器异步回调执行日志;
|
|
|
76
|
+- 3、【重要】在 “调度中心” 支持HA的基础上,扩展执行器的Failover支持,支持配置多执行期地址;
|
|
73
|
77
|
|
|
74
|
78
|
# 规划中
|
|
75
|
|
- 1、任务终止时,任务队列中调度回调通过被终止的接口;
|
|
76
|
|
- 2、任务执行规则自定义:假如前一个任务正在执行,后续调度执行规则支持自定义;
|
|
|
79
|
+- 1、任务终止时,任务队列中调度回调通过被终止的接口;
|
|
|
80
|
+- 2、任务执行规则自定义:假如前一个任务正在执行,后续调度执行规则支持自定义;
|
|
77
|
81
|
串行(默认,当前逻辑):后续调度入调度队列;
|
|
78
|
82
|
并行:后续调度并行执行;
|
|
79
|
83
|
Pass:后续调度被Pass;
|
|
80
|
|
- 3、兼容oracle;
|
|
|
84
|
+- 3、兼容oracle;
|
|
81
|
85
|
|
|
82
|
86
|
# 源码目录说明
|
|
83
|
87
|
/xxl-job-admin 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
|
|
|
@@ -89,11 +93,11 @@ cnblogs地址:http://www.cnblogs.com/xuxueli/p/5021979.html
|
|
89
|
93
|
# Tips
|
|
90
|
94
|
我司大众点评已接入XXL-JOB,内部别名《Ferrari》(于V1.1.x版本,XXL-JOB正式应用于我司,内部定制别名为 “Ferrari”,新接入应用推荐使用最新版本V1.3.x)。自2016-01-21接入至2016-05-20未知,内部XXL-JOB系统已调度45000余次,表现优异。新接入应用推荐使用最新版本V1.3,因为经过两个大版本的更新,系统的任务模型、UI交互模型以及底层调度通讯模型都有了较大的提升,核心功能更加稳定高效。
|
|
91
|
95
|
XXL-JOB已接入多家公司的线上产品线,接入场景如电商业务,O2O业务和大数据作业等,截止2016-05-20为止,XXL-JOB已接入的公司包括不限于:
|
|
92
|
|
- 1、大众点评;
|
|
93
|
|
- 2、山东学而网络科技有限公司;
|
|
94
|
|
- 3、安徽慧通互联科技有限公司;
|
|
95
|
|
- 4、人人聚财金服;
|
|
96
|
|
- 5、上海棠棣信息科技股份有限公司
|
|
97
|
|
- 6、……
|
|
|
96
|
+ - 1、大众点评;
|
|
|
97
|
+ - 2、山东学而网络科技有限公司;
|
|
|
98
|
+ - 3、安徽慧通互联科技有限公司;
|
|
|
99
|
+ - 4、人人聚财金服;
|
|
|
100
|
+ - 5、上海棠棣信息科技股份有限公司
|
|
|
101
|
+ - 6、……
|
|
98
|
102
|
更多接入公司,欢迎在https://github.com/xuxueli/xxl-job/issues/1 登记。
|
|
99
|
103
|
|