瀏覽代碼

- 2、【优化】底层通讯超时时间支持自定义,默认3S;可参考 xxl-job-admin 和 samples 示例代码自行配置;
- 3、【修复】调度中心快慢线程池优化拒绝策略,避免因默认AbortPolicy导致调度结果丢失问题;

xuxueli 1 年之前
父節點
當前提交
2ccd8f25b7

+ 13 - 11
doc/XXL-JOB官方文档.md

@@ -2414,17 +2414,19 @@ public void execute() {
 ### 7.36 版本 v2.5.0 Release Notes[规划中]
 - 1、【优化】框架基础守护线程异常处理逻辑优化,避免极端情况下因Error导致调度终止问题;
 - 2、【优化】底层通讯超时时间支持自定义,默认3S;可参考 xxl-job-admin 和 samples 示例代码自行配置;
-- 3、【重构】调度线程任务信息更新逻辑优化,避免极端情况下已关闭任务被启动问题;
-- 4、【重构】执行器注册逻辑重构,降低多调度中心地址时并发注册问题;注册表“xxl_job_registry”新增唯一索引,避免冗余注册信息存储;
-- 5、【优化】部分系统日志优化,提升可读性;
-- 6、【优化】合并PR-3616,代码结构注释优化;
-- 7、【优化】合并PR-3619,避免调度过程中任务停止边界情况处理逻辑;
-- 8、【优化】合并PR-3605,避免子任务是任务本身导致死循环;
-- 9、【修复】合并PR-3585,修复全局密码长度不一致问题;
-- 10、【优化】合并PR-3518,SQL列别名反引号包裹,提升跨数据迁移兼容性;
-- 11、【优化】合并PR-3518、PR-3400,日志表索引优化,提升大日志量情况下日志查询及清理速度;
-- 12、[规划中]登陆态Token声称逻辑优化,混淆登陆时间属性,降低token泄漏风险;
-- 13、[规划中]升级springboot3.x,解决2.x老版本漏洞类问题。注意,springboot3.x依赖jdk17;
+- 3、【修复】调度中心快慢线程池优化拒绝策略,避免因默认AbortPolicy导致调度结果丢失问题;
+- 4、【优化】调度中心快慢线程池队列长度提升,缓解因激增任务导致任务积压问题;
+- 5、【重构】调度线程任务信息更新逻辑优化,避免极端情况下已关闭任务被启动问题;
+- 6、【重构】执行器注册逻辑重构,降低多调度中心地址时并发注册问题;注册表“xxl_job_registry”新增唯一索引,避免冗余注册信息存储;
+- 7、【优化】部分系统日志优化,提升可读性;
+- 8、【优化】合并PR-3616,代码结构注释优化;
+- 9、【优化】合并PR-3619,避免调度过程中任务停止边界情况处理逻辑;
+- 10、【优化】合并PR-3605,避免子任务是任务本身导致死循环;
+- 11、【修复】合并PR-3585,修复全局密码长度不一致问题;
+- 12、【优化】合并PR-3518,SQL列别名反引号包裹,提升跨数据迁移兼容性;
+- 13、【优化】合并PR-3518、PR-3400,日志表索引优化,提升大日志量情况下日志查询及清理速度;
+- 14、[规划中]登陆态Token声称逻辑优化,混淆登陆时间属性,降低token泄漏风险;
+- 15、[规划中]升级springboot3.x,解决2.x老版本漏洞类问题。注意,springboot3.x依赖jdk17;
 
 ### TODO LIST
 - 1、调度隔离:调度中心针对不同执行器,各自维护不同的调度和远程触发组件。

+ 18 - 2
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java

@@ -30,12 +30,18 @@ public class JobTriggerPoolHelper {
                 XxlJobAdminConfig.getAdminConfig().getTriggerPoolFastMax(),
                 60L,
                 TimeUnit.SECONDS,
-                new LinkedBlockingQueue<Runnable>(1000),
+                new LinkedBlockingQueue<Runnable>(2000),
                 new ThreadFactory() {
                     @Override
                     public Thread newThread(Runnable r) {
                         return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-fastTriggerPool-" + r.hashCode());
                     }
+                },
+                new RejectedExecutionHandler() {
+                    @Override
+                    public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
+                        logger.error(">>>>>>>>>>> xxl-job, admin JobTriggerPoolHelper-fastTriggerPool execute too fast, Runnable="+r.toString() );
+                    }
                 });
 
         slowTriggerPool = new ThreadPoolExecutor(
@@ -43,12 +49,18 @@ public class JobTriggerPoolHelper {
                 XxlJobAdminConfig.getAdminConfig().getTriggerPoolSlowMax(),
                 60L,
                 TimeUnit.SECONDS,
-                new LinkedBlockingQueue<Runnable>(2000),
+                new LinkedBlockingQueue<Runnable>(5000),
                 new ThreadFactory() {
                     @Override
                     public Thread newThread(Runnable r) {
                         return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-slowTriggerPool-" + r.hashCode());
                     }
+                },
+                new RejectedExecutionHandler() {
+                    @Override
+                    public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
+                        logger.error(">>>>>>>>>>> xxl-job, admin JobTriggerPoolHelper-slowTriggerPool execute too fast, Runnable="+r.toString() );
+                    }
                 });
     }
 
@@ -116,6 +128,10 @@ public class JobTriggerPoolHelper {
                 }
 
             }
+            @Override
+            public String toString() {
+                return "Job Runnable, jobId:"+jobId;
+            }
         });
     }