From c480303e39e9a1ee97d0ac66cc9987670d8ae608 Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Sun, 29 Mar 2026 16:56:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E9=A2=91=E7=8E=87=E8=B0=83?= =?UTF-8?q?=E5=BA=A6=E7=AD=96=E7=95=A5=E8=B0=83=E6=95=B4=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=B0=8F=E6=A6=82=E7=8E=87=E4=B8=8B=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=81=8F=E5=B7=AE=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 | 9 +++++---- .../scheduler/type/strategy/FixRateScheduleType.java | 9 ++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index e5f45f61..7b8c0d79 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -2790,10 +2790,11 @@ public void execute() { ### 7.44 版本 v3.4.0 Release Notes[ING] - 1、【新增】调度性能提升:任务触发后分批批量更新,高频调度场景可百倍降低SQL操作合并执行,提升调度性能; (新增“任务批量更新(xxl.job.schedule.batchsize)”配置项,支持动态修改批量操作大小) -- 2、【调整】Docker基础镜像调整为eclipse-temurin; -- 3、【优化】父POM依赖配置优化,移除容易配置;合并PR-3926; -- 4、【升级】升级多项maven依赖至较新版本; -- 5、【TODO】调度中心OpenAPI完善,提供任务管理能力;封装Agent Skill并推送ClawHub; +- 2、【调整】固定频率调度策略调整,修复小概率下触发时间偏差问题; +- 3、【调整】Docker基础镜像调整为eclipse-temurin; +- 4、【优化】父POM依赖配置优化,移除容易配置;合并PR-3926; +- 5、【升级】升级多项maven依赖至较新版本; +- 6、【TODO】调度中心OpenAPI完善,提供任务管理能力;封装Agent Skill并推送ClawHub; ### TODO LIST diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/type/strategy/FixRateScheduleType.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/type/strategy/FixRateScheduleType.java index 290a4200..b71dda70 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/type/strategy/FixRateScheduleType.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/scheduler/type/strategy/FixRateScheduleType.java @@ -10,7 +10,14 @@ public class FixRateScheduleType extends ScheduleType { @Override public Date generateNextTriggerTime(XxlJobInfo jobInfo, Date fromTime) throws Exception { // generate next trigger time, fix rate delay - return new Date(fromTime.getTime() + Long.parseLong(jobInfo.getScheduleConf()) * 1000L); + Date nextTriggerTime = new Date(jobInfo.getTriggerLastTime() + Long.parseLong(jobInfo.getScheduleConf()) * 1000L); + if (nextTriggerTime.after(fromTime)) { + // fix rate delay, after last-trigger-time + return nextTriggerTime; + } else { + // fix rate delay, after fromTime + return new Date(fromTime.getTime() + Long.parseLong(jobInfo.getScheduleConf()) * 1000L); + } } }