瀏覽代碼

执行器,server启动、销毁和注册逻辑调整;

xueli.xue 8 年之前
父節點
當前提交
882d7a43e9
共有 2 個文件被更改,包括 15 次插入16 次删除
  1. 9 10
      README.md
  2. 6 6
      xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java

+ 9 - 10
README.md 查看文件

809
 
809
 
810
 #### 6.15 版本 V1.7.1 特性(Coding)
810
 #### 6.15 版本 V1.7.1 特性(Coding)
811
 - 1、运行日志读写编码统一,解决windows环境下日志乱码问题;
811
 - 1、运行日志读写编码统一,解决windows环境下日志乱码问题;
812
-- 2、通讯超时时间设置为10s,避免异常情况下调度线程占用;
813
-- 3、JettyServer关闭逻辑优化,修复执行器无法正常关闭的问题;
814
-- 4、JobHandler中开启子线程时,支持子线程输出执行日志并通过Rolling查看。
812
+- 2、通讯超时时间限定为10s,避免异常情况下调度线程占用;
813
+- 3、执行器,server启动、销毁和注册逻辑调整;
814
+- 4、JettyServer关闭逻辑优化,修复执行器无法正常关闭导致端口占用和频繁打印c3p0日志的问题;
815
+- 5、JobHandler中开启子线程时,支持子线程输出执行日志并通过Rolling查看。
815
 
816
 
816
 #### TODO LIST
817
 #### TODO LIST
817
 - 1、任务并行触发处理规则:单机串行队列(默认)、单机并行、串行忽略、单机覆盖;
818
 - 1、任务并行触发处理规则:单机串行队列(默认)、单机并行、串行忽略、单机覆盖;
818
 - 2、任务权限管理;
819
 - 2、任务权限管理;
819
-- 3、执行器,server启动,注册逻辑调整;
820
-- 4、调度失败重试机制;
821
-- 5、JobHandler开启多线程时,支持记录执行日志;
822
-- 6、执行器与数据库解耦,只需配置调度中心集群地址即可(与当前通过JDBC注册自动发现方式,相冲突,待考虑);
823
-- 7、任务日志定期清理功能,支持设置日志上限;
824
-- 8、任务分片:一个任务被拆分成N个独立的任务单元,然后由分布式部署的执行器分别执行某一个或几个分片单元;
825
-- 9、任务分片路由:分片采用一致性Hash算法计算出尽量稳定的分片顺序,即使注册机器存在波动也不会引起分批分片顺序大的波动;
820
+- 3、调度失败重试机制;
821
+- 4、执行器与数据库解耦,只需配置调度中心集群地址即可(与当前通过JDBC注册自动发现方式,相冲突,待考虑);
822
+- 5、任务日志定期清理功能,支持设置日志上限;
823
+- 6、任务分片:一个任务被拆分成N个独立的任务单元,然后由分布式部署的执行器分别执行某一个或几个分片单元;
824
+- 7、任务分片路由:分片采用一致性Hash算法计算出尽量稳定的分片顺序,即使注册机器存在波动也不会引起分批分片顺序大的波动;
826
 
825
 
827
 
826
 
828
 ## 七、其他
827
 ## 七、其他

+ 6 - 6
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java 查看文件

60
         TriggerCallbackThread.getInstance().start();
60
         TriggerCallbackThread.getInstance().start();
61
     }
61
     }
62
     public void destroy(){
62
     public void destroy(){
63
-        // executor stop
63
+        // 1、executor registry thread stop
64
+        ExecutorRegistryThread.getInstance().toStop();
65
+
66
+        // 2、executor stop
64
         serverFactory.destroy();
67
         serverFactory.destroy();
65
 
68
 
66
-        // job thread repository destory
69
+        // 3、job thread repository destory
67
         if (JobThreadRepository.size() > 0) {
70
         if (JobThreadRepository.size() > 0) {
68
             for (Map.Entry<Integer, JobThread> item: JobThreadRepository.entrySet()) {
71
             for (Map.Entry<Integer, JobThread> item: JobThreadRepository.entrySet()) {
69
                 JobThread jobThread = item.getValue();
72
                 JobThread jobThread = item.getValue();
74
             JobThreadRepository.clear();
77
             JobThreadRepository.clear();
75
         }
78
         }
76
 
79
 
77
-        // trigger callback thread stop
80
+        // 4、trigger callback thread stop
78
         TriggerCallbackThread.getInstance().toStop();
81
         TriggerCallbackThread.getInstance().toStop();
79
-
80
-        // executor registry thread stop
81
-        ExecutorRegistryThread.getInstance().toStop();
82
     }
82
     }
83
 
83
 
84
     // ---------------------------------- init job handler ------------------------------------
84
     // ---------------------------------- init job handler ------------------------------------