Browse Source

执行器优雅停机优化

xuxueli 6 years ago
parent
commit
5368b6917e

+ 1 - 0
doc/XXL-JOB官方文档.md

@@ -1430,6 +1430,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
 - 16、LRU路由更新不及时问题修复;
 - 17、任务失败告警邮件发送逻辑优化;
 - 18、调度日志排序逻辑调整为按照调度时间倒序,兼容TIDB等主键不连续日志存储组件;
+- 19、执行器优雅停机优化;
 - 19、[迭代中]任务线程隔离:
     - 执行器测异步响应,不存在阻塞不需要隔离;
     - 调度中心共用单一调度线程池,可能导致调度阻塞需要线程隔离;调度线程池拆分为Fast/Slow两个,针对调度较慢的执行器地址请求,降级使用Slow线程池;考虑是否可以任务级隔离线程池;

+ 12 - 7
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java

@@ -69,7 +69,7 @@ public class XxlJobExecutor  {
         // init logpath
         XxlJobFileAppender.initLogPath(logPath);
 
-        // init admin-client
+        // init invoker, admin-client
         initAdminBizList(adminAddresses, accessToken);
 
 
@@ -103,6 +103,9 @@ public class XxlJobExecutor  {
 
         // destory executor-server
         stopRpcProvider();
+
+        // destory invoker
+        stopInvokerFactory();
     }
 
 
@@ -139,6 +142,14 @@ public class XxlJobExecutor  {
             }
         }
     }
+    private void stopInvokerFactory(){
+        // stop invoker factory
+        try {
+            XxlRpcInvokerFactory.getInstance().stop();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
     public static List<AdminBiz> getAdminBizList(){
         return adminBizList;
     }
@@ -202,12 +213,6 @@ public class XxlJobExecutor  {
     }
 
     private void stopRpcProvider() {
-        // stop invoker factory
-        try {
-            XxlRpcInvokerFactory.getInstance().stop();
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-        }
         // stop provider factory
         try {
             xxlRpcProviderFactory.stop();