diff --git "a/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" "b/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" index def460f..25ccbd6 100644 --- "a/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" +++ "b/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" @@ -1430,6 +1430,7 @@ - 16、LRU路由更新不及时问题修复; - 17、任务失败告警邮件发送逻辑优化; - 18、调度日志排序逻辑调整为按照调度时间倒序,兼容TIDB等主键不连续日志存储组件; +- 19、执行器优雅停机优化; - 19、[迭代中]任务线程隔离: - 执行器测异步响应,不存在阻塞不需要隔离; - 调度中心共用单一调度线程池,可能导致调度阻塞需要线程隔离;调度线程池拆分为Fast/Slow两个,针对调度较慢的执行器地址请求,降级使用Slow线程池;考虑是否可以任务级隔离线程池; diff --git "a/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" "b/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" index def460f..25ccbd6 100644 --- "a/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" +++ "b/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" @@ -1430,6 +1430,7 @@ - 16、LRU路由更新不及时问题修复; - 17、任务失败告警邮件发送逻辑优化; - 18、调度日志排序逻辑调整为按照调度时间倒序,兼容TIDB等主键不连续日志存储组件; +- 19、执行器优雅停机优化; - 19、[迭代中]任务线程隔离: - 执行器测异步响应,不存在阻塞不需要隔离; - 调度中心共用单一调度线程池,可能导致调度阻塞需要线程隔离;调度线程池拆分为Fast/Slow两个,针对调度较慢的执行器地址请求,降级使用Slow线程池;考虑是否可以任务级隔离线程池; diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java b/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java index e58e102..84f1f9e 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java @@ -69,7 +69,7 @@ // init logpath XxlJobFileAppender.initLogPath(logPath); - // init admin-client + // init invoker, admin-client initAdminBizList(adminAddresses, accessToken); @@ -103,6 +103,9 @@ // destory executor-server stopRpcProvider(); + + // destory invoker + stopInvokerFactory(); } @@ -139,6 +142,14 @@ } } } + private void stopInvokerFactory(){ + // stop invoker factory + try { + XxlRpcInvokerFactory.getInstance().stop(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } public static List getAdminBizList(){ return adminBizList; } @@ -202,12 +213,6 @@ } private void stopRpcProvider() { - // stop invoker factory - try { - XxlRpcInvokerFactory.getInstance().stop(); - } catch (Exception e) { - logger.error(e.getMessage(), e); - } // stop provider factory try { xxlRpcProviderFactory.stop();