Просмотр исходного кода

执行器注册线程优化,修复极端情况下初始化失败时导致NPE问题;

xueli.xue 4 лет назад
Родитель
Сommit
00dc9a3e04

+ 3 - 2
doc/XXL-JOB官方文档.md

@@ -2060,8 +2060,9 @@ data: post-data
 - 14、执行器注册表字段优化,解决执行器注册节点过多导致注册信息存储和更新失败的问题;
 - 15、调度通讯组件优化,修复RestFul方式调用 DotNet 版本执行器时心跳检测失败问题;
 - 16、调度中心组件加载顺序优化,修复极端情况下调度组件初始慢导致的调度失败问题;
-- 17、[规划中]任务触发参数优化:支持选择 "Cron触发"、"固定间隔时间触发"、"指定时间点触发"、"不选择" 等;
-- 18、[规划中]分片任务:全部完成后才会出发后置节点;
+- 17、执行器注册线程优化,修复极端情况下初始化失败时导致NPE问题;
+- 18、[规划中]任务触发参数优化:支持选择 "Cron触发"、"固定间隔时间触发"、"指定时间点触发"、"不选择" 等;
+- 19、[规划中]分片任务:全部完成后才会出发后置节点;
 
 ### 7.32 版本 v2.3.0 Release Notes[规划中]
 - 1、[规划中]DAG流程任务

+ 9 - 5
xxl-job-core/src/main/java/com/xxl/job/core/thread/ExecutorRegistryThread.java

@@ -113,13 +113,17 @@ public class ExecutorRegistryThread {
 
     public void toStop() {
         toStop = true;
+
         // interrupt and wait
-        registryThread.interrupt();
-        try {
-            registryThread.join();
-        } catch (InterruptedException e) {
-            logger.error(e.getMessage(), e);
+        if (registryThread != null) {
+            registryThread.interrupt();
+            try {
+                registryThread.join();
+            } catch (InterruptedException e) {
+                logger.error(e.getMessage(), e);
+            }
         }
+
     }
 
 }