This commit is contained in:
xueli.xue 2017-03-12 22:56:52 +08:00
parent 1874cdfdd7
commit 16e5db759d
1 changed files with 36 additions and 31 deletions

View File

@ -196,9 +196,9 @@ XXL-JOB是一个轻量级分布式任务调度框架其核心设计目标是
- **步骤一(新建任务)** - **步骤一(新建任务)**
登陆调度中心,点击下图所示“新建任务”按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。 登陆调度中心,点击下图所示“新建任务”按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。
![输入图片说明](https://static.oschina.net/uploads/img/201610/03195725_xrba.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12220807_amrb.png "在这里输入图片标题")
![输入图片说明](https://static.oschina.net/uploads/img/201610/03200237_Y29m.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12220856_rd3R.png "在这里输入图片标题")
- **步骤二GLUE任务开发** - **步骤二GLUE任务开发**
请点击下图中所示“GLUE入口按钮”进入“GLUE编辑器开发界面”见下图。GLUE任务默认已经初始化了示例任务代码即打印Hello World。 请点击下图中所示“GLUE入口按钮”进入“GLUE编辑器开发界面”见下图。GLUE任务默认已经初始化了示例任务代码即打印Hello World。
@ -211,18 +211,18 @@ XXL-JOB是一个轻量级分布式任务调度框架其核心设计目标是
- **步骤三(触发执行)** - **步骤三(触发执行)**
点击下图所示“执行”按钮可手动触发一次任务执行通常情况下通过配置Cron表达式进行任务调度出发 点击下图所示“执行”按钮可手动触发一次任务执行通常情况下通过配置Cron表达式进行任务调度出发
![输入图片说明](https://static.oschina.net/uploads/img/201607/23225653_iY9K.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12221021_uD5l.png "在这里输入图片标题")
- **步骤四(查看日志)** - **步骤四(查看日志)**
点击图2.5F所示“日志”按钮,可前往任务日志界面查看任务日志。 点击图2.5F所示“日志”按钮,可前往任务日志界面查看任务日志。
在如图2.5G的任务日志界面中,可查看任务调度状态,执行器接收到调度请求后的执行状态。 在如图2.5G的任务日志界面中,可查看任务调度状态,执行器接收到调度请求后的执行状态。
同时点击如图2.5G中的“执行日志”按钮可以查看本此调度在执行器端的完整执行日志完整执行日志如图2.5H。 同时点击如图2.5G中的“执行日志”按钮可以查看本此调度在执行器端的完整执行日志完整执行日志如图2.5H。
![输入图片说明](https://static.oschina.net/uploads/img/201607/23225953_7ey7.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12221130_jYQi.png "在这里输入图片标题")
图2.5F:“调度中心”管理管理界面,任务日志入口) 图2.5F:“调度中心”管理管理界面,任务日志入口)
![输入图片说明](https://static.oschina.net/uploads/img/201607/23230953_BFVV.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12221436_c8Ru.png "在这里输入图片标题")
图2.5G:“调度中心”管理管理界面,任务日志入口) 图2.5G:“调度中心”管理管理界面,任务日志入口)
@ -262,7 +262,7 @@ Bean模式任务任务逻辑以JobHandler的形式存在于“执行器”所
参考上文“配置属性详细说明”对新建的任务进行参数配置需要注意的是“JobHandler + GLUE复选框”任务属性需要按照“GLUE模式”任务进行配置 参考上文“配置属性详细说明”对新建的任务进行参数配置需要注意的是“JobHandler + GLUE复选框”任务属性需要按照“GLUE模式”任务进行配置
![输入图片说明](https://static.oschina.net/uploads/img/201610/03201536_AITu.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12220856_rd3R.png "在这里输入图片标题")
#### 3.2 GLUE模式任务 #### 3.2 GLUE模式任务
GLUE模式任务任务逻辑以GLUE代码的形式存储在DB中支持通过Web IDE在线更新实时编译和生效因此不需要指定JobHandler。开发流程如下 GLUE模式任务任务逻辑以GLUE代码的形式存储在DB中支持通过Web IDE在线更新实时编译和生效因此不需要指定JobHandler。开发流程如下
@ -271,7 +271,7 @@ GLUE模式任务任务逻辑以GLUE代码的形式存储在DB中支持通
参考上文“配置属性详细说明”对新建的任务进行参数配置需要注意的是“JobHandler + GLUE复选框”任务属性需要按照“GLUE模式”任务进行配置 参考上文“配置属性详细说明”对新建的任务进行参数配置需要注意的是“JobHandler + GLUE复选框”任务属性需要按照“GLUE模式”任务进行配置
![输入图片说明](https://static.oschina.net/uploads/img/201610/03201536_AITu.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12223319_huug.png "在这里输入图片标题")
- **步骤二开发GLUE代码** - **步骤二开发GLUE代码**
@ -282,33 +282,37 @@ GLUE模式任务任务逻辑以GLUE代码的形式存储在DB中支持通
## 四、任务管理 ## 四、任务管理
#### 4.0 配置执行器 #### 4.0 配置执行器
点击进入"执行器管理"界面, 如下图: 点击进入"执行器管理"界面, 如下图:
![输入图片说明](https://static.oschina.net/uploads/img/201610/03202021_hCSq.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12223509_Hr2T.png "在这里输入图片标题")
1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险; 1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险;
2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。 2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。
点击按钮 "+新增执行器" 弹框如下图, 可新增执行器配置: 点击按钮 "+新增执行器" 弹框如下图, 可新增执行器配置:
![输入图片说明](https://static.oschina.net/uploads/img/201610/03202706_y3sj.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12223617_g3Im.png "在这里输入图片标题")
**执行器属性说明** **执行器属性说明**
AppName: 是每个执行器集群的唯一标示AppName, 执行器会周期性以AppName为对象进行自动注册。可通过该配置自动发现注册成功的执行器, 供任务调度时使用; AppName: 是每个执行器集群的唯一标示AppName, 执行器会周期性以AppName为对象进行自动注册。可通过该配置自动发现注册成功的执行器, 供任务调度时使用;
名称: 执行器的名称, 因为AppName限制字母数字等组成,可读性不强, 名称为了提高执行器的可读性; 名称: 执行器的名称, 因为AppName限制字母数字等组成,可读性不强, 名称为了提高执行器的可读性;
排序: 执行器的排序, 系统中需要执行器的地方,如任务新增, 将会按照该排序读取可用的执行器列表; 排序: 执行器的排序, 系统中需要执行器的地方,如任务新增, 将会按照该排序读取可用的执行器列表;
注册方式:调度中心获取执行器地址的方式;
自动注册:执行器自动进行执行器注册,调度中心通过底层注册表可以动态发现执行器机器地址;
手动录入:人工手动录入执行器的地址信息,多地址逗号分隔,供调度中心使用;
机器地址:"注册方式"为"手动录入"时有效,支持人工维护执行器的地址信息;
#### 4.1 新建任务 #### 4.1 新建任务
进入任务管理界面,点击“新增任务”按钮,在弹出的“新增任务”界面配置任务属性后保存即可,可参考下图: 进入任务管理界面,点击“新增任务”按钮,在弹出的“新增任务”界面配置任务属性后保存即可,可参考下图:
![输入图片说明](https://static.oschina.net/uploads/img/201610/03204131_epwD.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12220807_amrb.png "在这里输入图片标题")
![输入图片说明](https://static.oschina.net/uploads/img/201610/03204139_P5Wx.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12220856_rd3R.png "在这里输入图片标题")
#### 4.2 编辑任务 #### 4.2 编辑任务
进入任务管理界面,选中指定任务。点击该任务右侧“编辑”按钮,在弹出的“编辑任务”界面更新任务属性后保存即可,可参考下图: 进入任务管理界面,选中指定任务。点击该任务右侧“编辑”按钮,在弹出的“编辑任务”界面更新任务属性后保存即可,可参考下图:
![输入图片说明](https://static.oschina.net/uploads/img/201607/24124734_UYp2.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12224350_856C.png "在这里输入图片标题")
![输入图片说明](https://static.oschina.net/uploads/img/201610/03204241_BfNw.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12223617_g3Im.png "在这里输入图片标题")
#### 4.3 编辑GLUE代码 #### 4.3 编辑GLUE代码
@ -338,19 +342,20 @@ GLUE任务开发进入任务管理界面选中指定任务。点击该任
![输入图片说明](https://static.oschina.net/uploads/img/201607/24133500_9235.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201607/24133500_9235.png "在这里输入图片标题")
![输入图片说明](https://static.oschina.net/uploads/img/201607/24134148_6xpS.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/12221436_c8Ru.png "在这里输入图片标题")
调度日志,针对单次调度,属性说明如下: 调度时间:"调度中心"触发本次调度并向"执行器"发送任务执行信号的时间;
- 执行器地址:任务执行的机器地址; 调度结果:"调度中心"触发本次调度的结果200表示成功500或其他表示失败
- JobHandlerBean模式表示任务执行的JobHandler名称 调度备注:"调度中心"触发本次调度的日志信息;
- 任务参数:任务执行的入参; 执行器地址:本次任务执行的机器地址
- 调度时间:调度中心,发起调度的时间; JobHandler本地任务执行的JobHandlerBean模式表示任务执行的JobHandler名称
- 调度结果调度中心发起调度的结果SUCCESS或FAIL 任务参数:本地任务执行的入参
- 调度备注:调度中心,发起调度的备注信息,如地址心跳检测日志等; 执行时间:"执行器"中本次任务执行结束后回调的时间;
- 执行时间:执行器,任务执行结束后回调的时间; 执行结果:"执行器"中本次任务执行的结果200表示成功500或其他表示失败
- 执行结果执行器任务执行的结果SUCCESS或FAIL 执行备注:"执行器"中本次任务执行的日志信息;
- 执行备注:执行器,任务执行的备注信息,如异常日志等; 操作:
- 执行日志任务执行过程中业务代码中打印的完整执行日志见“4.7 查看执行日志”; "执行日志"按钮点击可查看本地任务执行的详细日志信息详见“4.7 查看执行日志”;
"终止任务"按钮:点击可终止本地调度对应执行器上本任务的执行线程,包括未执行的阻塞任务一并被终止;
#### 4.7 查看执行日志 #### 4.7 查看执行日志
点击执行日志右侧的 “执行日志” 按钮,可跳转至执行日志界面,可以查看业务代码中打印的完整日志,如下图; 点击执行日志右侧的 “执行日志” 按钮,可跳转至执行日志界面,可以查看业务代码中打印的完整日志,如下图;
@ -397,14 +402,14 @@ XXL-JOB首先定制了Quartz原生表结构前缀XXL_JOB_QRTZ_
![输入图片说明](https://static.oschina.net/uploads/img/201607/24143957_bNwm.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201607/24143957_bNwm.png "在这里输入图片标题")
然后,在此基础上新增了三张扩展表,如下: 然后,在此基础上新增了几张张扩展表,如下:
- XXL_JOB_QRTZ_TRIGGER_GROUP执行器信息表维护任务执行器信息
- XXL_JOB_QRTZ_TRIGGER_REGISTRY执行器注册表维护在线的执行器和调度中心机器地址信息
- XXL_JOB_QRTZ_TRIGGER_INFO调度扩展信息表 用于保存XXL-JOB调度任务的扩展信息如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等 - XXL_JOB_QRTZ_TRIGGER_INFO调度扩展信息表 用于保存XXL-JOB调度任务的扩展信息如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等
- XXL_JOB_QRTZ_TRIGGER_LOG调度日志表 用于保存XXL-JOB任务调度的历史信息如调度结果、执行结果、调度入参、调度机器和执行器等等 - XXL_JOB_QRTZ_TRIGGER_LOG调度日志表 用于保存XXL-JOB任务调度的历史信息如调度结果、执行结果、调度入参、调度机器和执行器等等
- XXL_JOB_QRTZ_TRIGGER_LOGGLUE任务GLUE日志用于保存GLUE更新历史用于支持GLUE的版本回溯功能 - XXL_JOB_QRTZ_TRIGGER_LOGGLUE任务GLUE日志用于保存GLUE更新历史用于支持GLUE的版本回溯功能
因此XXL-JOB调度数据库共计用于14张数据库表。 因此XXL-JOB调度数据库共计用于16张数据库表。
![输入图片说明](https://static.oschina.net/uploads/img/201607/23221308_DDW8.png "在这里输入图片标题")
#### 5.3 架构设计 #### 5.3 架构设计
##### 5.3.1 设计思想 ##### 5.3.1 设计思想
@ -493,9 +498,9 @@ CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).w
##### 5.4.7 日志回调服务 ##### 5.4.7 日志回调服务
调度模块的“调度中心”作为Web服务单独部署除此之外内部嵌入jetty服务器提供日志回调服务。 调度模块的“调度中心”作为Web服务单独部署除此之外内部嵌入jetty服务器提供日志回调服务。
“执行器”在接收到任务执行请求后,执行任务,在执行结束之后会将执行结果回调通知“调度中心”,回调端口如下图所示。 “执行器”在接收到任务执行请求后,执行任务,在执行结束之后会将执行结果回调通知“调度中心”,回调端口如下图所示参数xxl.job.callBackPort
![输入图片说明](https://static.oschina.net/uploads/img/201607/23223301_I03k.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201703/10172754_5DUl.png "在这里输入图片标题")
##### 5.4.8 任务HAFailover ##### 5.4.8 任务HAFailover
执行器如若集群部署调度中心将会感知到在线的所有执行器如“127.0.0.1:9998,127.0.0.1:9999”。 执行器如若集群部署调度中心将会感知到在线的所有执行器如“127.0.0.1:9998,127.0.0.1:9999”。