|
@@ -503,14 +503,16 @@ CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).w
|
503
|
503
|

|
504
|
504
|
|
505
|
505
|
##### 5.4.8 任务HA(Failover)
|
506
|
|
-执行器如若集群部署,调度中心将会感知到在线的所有执行器,如“127.0.0.1:9998,127.0.0.1:9999”。
|
|
506
|
+执行器如若集群部署,调度中心将会感知到在线的所有执行器,如“127.0.0.1:9997, 127.0.0.1:9998, 127.0.0.1:9999”。
|
507
|
507
|
|
508
|
|
-执行器集群部署,当调度中心每次发起调度请求时,会对执行器随机排序,然后按照顺序取对执行器发出心跳检测请求,第一个检测为存活状态的执行器将会被选定并发送调度请求。
|
|
508
|
+当任务"路由策略"选择"故障转移(FAILOVER)"时,当调度中心每次发起调度请求时,会对执行器随机排序,然后按照顺序取对执行器发出心跳检测请求,第一个检测为存活状态的执行器将会被选定并发送调度请求。
|
|
509
|
+
|
509
|
510
|
|
510
|
511
|
调度成功后,可在日志监控界面查看“调度备注”,如下;
|
511
|
|
-
|
|
512
|
+
|
512
|
513
|
|
513
|
|
-“调度备注”可以查看执行器地址选择日志,任务配置的地址“227.0.0.1:9999,127.0.0.1:9999”,首先对第一个执行器地址“227.0.0.1:9999”进行心跳检测,心跳失败因此跳过;然后对第二个执行器地址“127.0.0.1:9999”进行心跳检测,心跳检测成功,选定为“目标执行器”;然后对“目标执行器”发送调度请求,调度流程结束,等待执行器回调执行结果。
|
|
514
|
+“调度备注”可以看出本地调度运行轨迹,执行器的"注册方式"、"地址列表"和任务的"路由策略"。"故障转移(FAILOVER)"路由策略下,调度中心首先对第一个地址进行心跳检测,心跳失败因此自动跳过,第二个依然心跳检测失败……
|
|
515
|
+直至心跳检测第三个地址“127.0.0.1:9999”成功,选定为“目标执行器”;然后对“目标执行器”发送调度请求,调度流程结束,等待执行器回调执行结果。
|
514
|
516
|
|
515
|
517
|
##### 5.4.9 调度日志
|
516
|
518
|
调度中心每次进行任务调度,都会记录一条任务日志,任务日志主要包括以下三部分内容:
|
|
@@ -519,8 +521,7 @@ CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).w
|
519
|
521
|
- 调度信息:包括“调度时间”、“调度结果”和“调度日志”等,根据这些参数,可以了解“调度中心”发起调度请求时具体情况。
|
520
|
522
|
- 执行信息:包括“执行时间”、“执行结果”和“执行日志”等,根据这些参数,可以了解在“执行器”端任务执行的具体情况;
|
521
|
523
|
|
522
|
|
-
|
523
|
|
-
|
|
524
|
+
|
524
|
525
|
|
525
|
526
|
调度日志,针对单次调度,属性说明如下:
|
526
|
527
|
- 执行器地址:任务执行的机器地址;
|
|
@@ -555,9 +556,9 @@ CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).w
|
555
|
556
|
原理:每个Glue任务的代码,实际上是“一个继承自“IJobHandler”的实现类的类代码”,“执行器”接收到“调度中心”的调度请求时,会通过Groovy类加载器加载此代码,实例化成Java对象,同时注入此代码中声明的Spring服务(请确保Glue代码中的服务和类引用在“执行器”项目中存在),然后调用该对象的execute方法,执行任务逻辑。
|
556
|
557
|
|
557
|
558
|
##### 5.5.3 执行器
|
558
|
|
-执行器实际上是一个内嵌的Jetty服务器,默认端口9999。
|
|
559
|
+执行器实际上是一个内嵌的Jetty服务器,默认端口9999,如下图配置文件所示(参数:xxl.job.executor.port)。
|
559
|
560
|
|
560
|
|
-
|
|
561
|
+
|
561
|
562
|
|
562
|
563
|
在项目启动时,执行器会通过“@JobHander”识别Spring容器中“Bean模式任务”,以注解的value属性为key管理起来。
|
563
|
564
|
|