- 2、【优化】底层通讯超时时间支持自定义,默认3S;可参考 xxl-job-admin 和 samples 示例代码自行配置;

- 3、【修复】调度中心快慢线程池优化拒绝策略,避免因默认AbortPolicy导致调度结果丢失问题;
2.5.0
xuxueli 2 years ago
parent 86d26c8793
commit 2ccd8f25b7

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

@ -30,12 +30,18 @@ public class JobTriggerPoolHelper {
XxlJobAdminConfig.getAdminConfig().getTriggerPoolFastMax(), XxlJobAdminConfig.getAdminConfig().getTriggerPoolFastMax(),
60L, 60L,
TimeUnit.SECONDS, TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>(1000), new LinkedBlockingQueue<Runnable>(2000),
new ThreadFactory() { new ThreadFactory() {
@Override @Override
public Thread newThread(Runnable r) { public Thread newThread(Runnable r) {
return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-fastTriggerPool-" + r.hashCode()); 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( slowTriggerPool = new ThreadPoolExecutor(
@ -43,12 +49,18 @@ public class JobTriggerPoolHelper {
XxlJobAdminConfig.getAdminConfig().getTriggerPoolSlowMax(), XxlJobAdminConfig.getAdminConfig().getTriggerPoolSlowMax(),
60L, 60L,
TimeUnit.SECONDS, TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>(2000), new LinkedBlockingQueue<Runnable>(5000),
new ThreadFactory() { new ThreadFactory() {
@Override @Override
public Thread newThread(Runnable r) { public Thread newThread(Runnable r) {
return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-slowTriggerPool-" + r.hashCode()); 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;
}
}); });
} }

Loading…
Cancel
Save