From 2ccd8f25b744469759854488d81a179987b6e7d4 Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Sat, 11 Jan 2025 13:22:08 +0800 Subject: [PATCH] =?UTF-8?q?-=202=E3=80=81=E3=80=90=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E3=80=91=E5=BA=95=E5=B1=82=E9=80=9A=E8=AE=AF=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=EF=BC=8C=E9=BB=98=E8=AE=A43S=EF=BC=9B=E5=8F=AF=E5=8F=82?= =?UTF-8?q?=E8=80=83=20xxl-job-admin=20=E5=92=8C=20samples=20=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B=E4=BB=A3=E7=A0=81=E8=87=AA=E8=A1=8C=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=9B=20-=203=E3=80=81=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=E4=B8=AD=E5=BF=83=E5=BF=AB=E6=85=A2=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E6=B1=A0=E4=BC=98=E5=8C=96=E6=8B=92=E7=BB=9D=E7=AD=96?= =?UTF-8?q?=E7=95=A5=EF=BC=8C=E9=81=BF=E5=85=8D=E5=9B=A0=E9=BB=98=E8=AE=A4?= =?UTF-8?q?AbortPolicy=E5=AF=BC=E8=87=B4=E8=B0=83=E5=BA=A6=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E4=B8=A2=E5=A4=B1=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 | 24 ++++++++++--------- .../core/thread/JobTriggerPoolHelper.java | 20 ++++++++++++++-- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index 86fc56c6..f30f1722 100644 --- a/doc/XXL-JOB官方文档.md +++ b/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、调度隔离:调度中心针对不同执行器,各自维护不同的调度和远程触发组件。 diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java index a9a96533..e2dca548 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java +++ b/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(1000), + new LinkedBlockingQueue(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(2000), + new LinkedBlockingQueue(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; + } }); }