From f247cda682ff561c3110dc0407fb1ced9451f7be Mon Sep 17 00:00:00 2001 From: "xueli.xue" Date: Sun, 12 Mar 2017 23:13:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0RM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 06ca0ae9..b50b19a7 100644 --- a/README.md +++ b/README.md @@ -503,14 +503,16 @@ CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).w ![输入图片说明](https://static.oschina.net/uploads/img/201703/10172754_5DUl.png "在这里输入图片标题") ##### 5.4.8 任务HA(Failover) -执行器如若集群部署,调度中心将会感知到在线的所有执行器,如“127.0.0.1:9998,127.0.0.1:9999”。 +执行器如若集群部署,调度中心将会感知到在线的所有执行器,如“127.0.0.1:9997, 127.0.0.1:9998, 127.0.0.1:9999”。 -执行器集群部署,当调度中心每次发起调度请求时,会对执行器随机排序,然后按照顺序取对执行器发出心跳检测请求,第一个检测为存活状态的执行器将会被选定并发送调度请求。 +当任务"路由策略"选择"故障转移(FAILOVER)"时,当调度中心每次发起调度请求时,会对执行器随机排序,然后按照顺序取对执行器发出心跳检测请求,第一个检测为存活状态的执行器将会被选定并发送调度请求。 +![输入图片说明](https://static.oschina.net/uploads/img/201703/12230049_EBkr.png "在这里输入图片标题") 调度成功后,可在日志监控界面查看“调度备注”,如下; -![输入图片说明](https://static.oschina.net/uploads/img/201607/24150809_TNqT.png "在这里输入图片标题") +![输入图片说明](https://static.oschina.net/uploads/img/201703/12230733_jrdI.png "在这里输入图片标题") -“调度备注”可以查看执行器地址选择日志,任务配置的地址“227.0.0.1:9999,127.0.0.1:9999”,首先对第一个执行器地址“227.0.0.1:9999”进行心跳检测,心跳失败因此跳过;然后对第二个执行器地址“127.0.0.1:9999”进行心跳检测,心跳检测成功,选定为“目标执行器”;然后对“目标执行器”发送调度请求,调度流程结束,等待执行器回调执行结果。 +“调度备注”可以看出本地调度运行轨迹,执行器的"注册方式"、"地址列表"和任务的"路由策略"。"故障转移(FAILOVER)"路由策略下,调度中心首先对第一个地址进行心跳检测,心跳失败因此自动跳过,第二个依然心跳检测失败…… +直至心跳检测第三个地址“127.0.0.1:9999”成功,选定为“目标执行器”;然后对“目标执行器”发送调度请求,调度流程结束,等待执行器回调执行结果。 ##### 5.4.9 调度日志 调度中心每次进行任务调度,都会记录一条任务日志,任务日志主要包括以下三部分内容: @@ -519,8 +521,7 @@ CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).w - 调度信息:包括“调度时间”、“调度结果”和“调度日志”等,根据这些参数,可以了解“调度中心”发起调度请求时具体情况。 - 执行信息:包括“执行时间”、“执行结果”和“执行日志”等,根据这些参数,可以了解在“执行器”端任务执行的具体情况; - -![输入图片说明](https://static.oschina.net/uploads/img/201607/24134148_6xpS.png "在这里输入图片标题") +![输入图片说明](https://static.oschina.net/uploads/img/201703/12221436_c8Ru.png "在这里输入图片标题") 调度日志,针对单次调度,属性说明如下: - 执行器地址:任务执行的机器地址; @@ -555,9 +556,9 @@ CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).w 原理:每个Glue任务的代码,实际上是“一个继承自“IJobHandler”的实现类的类代码”,“执行器”接收到“调度中心”的调度请求时,会通过Groovy类加载器加载此代码,实例化成Java对象,同时注入此代码中声明的Spring服务(请确保Glue代码中的服务和类引用在“执行器”项目中存在),然后调用该对象的execute方法,执行任务逻辑。 ##### 5.5.3 执行器 -执行器实际上是一个内嵌的Jetty服务器,默认端口9999。 +执行器实际上是一个内嵌的Jetty服务器,默认端口9999,如下图配置文件所示(参数:xxl.job.executor.port)。 -![输入图片说明](https://static.oschina.net/uploads/img/201607/23224304_0jxT.png "在这里输入图片标题") +![输入图片说明](https://static.oschina.net/uploads/img/201703/10174923_TgNO.png "在这里输入图片标题") 在项目启动时,执行器会通过“@JobHander”识别Spring容器中“Bean模式任务”,以注解的value属性为key管理起来。