diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index 4b59fc83..8df854ea 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -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依赖至较新版本; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/config/XxlJobAdminBootstrap.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/config/XxlJobAdminBootstrap.java index 52475262..05d13a12 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/config/XxlJobAdminBootstrap.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/config/XxlJobAdminBootstrap.java @@ -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 diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobScheduleHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobScheduleHelper.java index 3bb89292..e8beadd2 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobScheduleHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/thread/JobScheduleHelper.java @@ -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> scheduleListBatches = CollectionTool.split(scheduleList, batchSize); for (List scheduleListBatch : scheduleListBatches) { int totalAffected = XxlJobAdminBootstrap.getInstance().getXxlJobInfoMapper().scheduleBatchUpdate(scheduleListBatch); diff --git a/xxl-job-admin/src/main/resources/application.properties b/xxl-job-admin/src/main/resources/application.properties index abac8fca..4ea78699 100644 --- a/xxl-job-admin/src/main/resources/application.properties +++ b/xxl-job-admin/src/main/resources/application.properties @@ -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