From 00dc9a3e04878eeb27a91fb59b67f9a53fbc4466 Mon Sep 17 00:00:00 2001 From: "xueli.xue" Date: Thu, 29 Oct 2020 14:43:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=99=A8=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E4=BC=98=E5=8C=96=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9E=81=E7=AB=AF=E6=83=85=E5=86=B5=E4=B8=8B=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E5=A4=B1=E8=B4=A5=E6=97=B6=E5=AF=BC=E8=87=B4NPE?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/XXL-JOB官方文档.md | 5 +++-- .../job/core/thread/ExecutorRegistryThread.java | 14 +++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index ec277dde..7f199a2c 100644 --- a/doc/XXL-JOB官方文档.md +++ b/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流程任务 diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/thread/ExecutorRegistryThread.java b/xxl-job-core/src/main/java/com/xxl/job/core/thread/ExecutorRegistryThread.java index 61635bb7..ff657b21 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/thread/ExecutorRegistryThread.java +++ b/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); + } } + } }