【新增】调度性能提升:任务触发后分批批量更新,高频调度场景可百倍降低SQL操作合并执行,提升调度性能;

(新增“任务批量更新(xxl.job.schedule.batchsize)”配置项,支持动态修改批量操作大小)
3.4.0-release
xuxueli 3 months ago
parent 61bb60369a
commit 7b9fd95412

@ -2785,7 +2785,8 @@ public void execute() {
- 10、【优化】统一项目依赖管理结构依赖版本统一到父级pom提升可维护性
### 7.44 版本 v3.4.0 Release Notes[ING]
- 1、【优化】调度性能提升任务触发后分批批量更新提升调度性能
- 1、【新增】调度性能提升任务触发后分批批量更新高频调度场景可百倍降低SQL操作合并执行提升调度性能
新增“任务批量更新xxl.job.schedule.batchsize”配置项支持动态修改批量操作大小
- 2、【调整】Docker基础镜像调整为eclipse-temurin
- 3、【优化】父POM依赖配置优化移除容易配置合并PR-3926
- 4、【升级】升级多项maven依赖至较新版本

@ -181,6 +181,9 @@ public class XxlJobAdminBootstrap implements InitializingBean, DisposableBean {
@Value("${xxl.job.triggerpool.slow.max}")
private int triggerPoolSlowMax;
@Value("${xxl.job.schedule.batchsize}")
private int scheduleBatchSize;
@Value("${xxl.job.logretentiondays}")
private int logretentiondays;
@ -244,6 +247,13 @@ public class XxlJobAdminBootstrap implements InitializingBean, DisposableBean {
return triggerPoolSlowMax;
}
public int getScheduleBatchSize() {
if (!(scheduleBatchSize >=50 && scheduleBatchSize <= 500)) {
return 100;
}
return scheduleBatchSize;
}
public int getLogretentiondays() {
if (logretentiondays < 3) {
return -1; // Limit greater than or equal to 3, otherwise close

@ -141,7 +141,7 @@ public class JobScheduleHelper {
/*for (XxlJobInfo jobInfo: scheduleList) {
XxlJobAdminBootstrap.getInstance().getXxlJobInfoMapper().scheduleUpdate(jobInfo);
}*/
int batchSize = 100;
int batchSize = XxlJobAdminBootstrap.getInstance().getScheduleBatchSize();
List<List<XxlJobInfo>> scheduleListBatches = CollectionTool.split(scheduleList, batchSize);
for (List<XxlJobInfo> scheduleListBatch : scheduleListBatches) {
int totalAffected = XxlJobAdminBootstrap.getInstance().getXxlJobInfoMapper().scheduleBatchUpdate(scheduleListBatch);

@ -64,6 +64,9 @@ xxl.job.i18n=zh_CN
xxl.job.triggerpool.fast.max=300
xxl.job.triggerpool.slow.max=200
## xxl-job, schedule batch size
xxl.job.schedule.batchsize=100
### xxl-job, log retention days
xxl.job.logretentiondays=30

Loading…
Cancel
Save