From e97e06b75efc24d03d2e5e05f768f8f205efbfdd Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Sat, 11 Jan 2025 11:02:06 +0800 Subject: [PATCH] =?UTF-8?q?refactor(admin):=20=E4=BC=98=E5=8C=96=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E8=B0=83=E5=BA=A6=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=92=8C=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新任务触发状态处理逻辑,提高系统稳定性 - 优化任务调度查询和更新 SQL,确保数据一致性- 改进代码结构和注释,提高可读性和可维护性 --- doc/XXL-JOB官方文档.md | 3 +++ .../com/xxl/job/admin/core/thread/JobScheduleHelper.java | 1 + .../src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java | 5 ++++- .../src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index 12950e1b..11a6d2d0 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -2405,6 +2405,9 @@ public void execute() { - 2、【优化】部分系统日志优化,提升可读性; - 3、【重构】调度线程任务信息更新逻辑优化,避免极端情况下已关闭任务被启动问题; - 5、【重构】执行器注册逻辑重构,降低多调度中心地址时并发注册问题;注册表“xxl_job_registry”新增唯一索引,避免冗余注册信息存储; +- 6、【优化】合并PR-3616,代码结构注释优化; +- 7、【优化】合并PR-3619,优化调度过程中任务停止边界情况处理逻辑; + - 4、[规划中]升级springboot3.x,解决2.x老版本漏洞类问题。注意,springboot3.x依赖jdk17; - 5、[规划中]安全功能增强,通讯加密参数改用加密数据避免AccessToken明文, 降低token泄漏风险; - 6、[规划中]登陆态Token声称逻辑优化,混淆登陆时间属性,降低token泄漏风险; diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java index ede3e46f..3f5e1106 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java @@ -272,6 +272,7 @@ public class JobScheduleHelper { try { Date nextValidTime = generateNextValidTime(jobInfo, fromTime); if (nextValidTime != null) { + jobInfo.setTriggerStatus(-1); // pass, may be Inaccurate jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime()); jobInfo.setTriggerNextTime(nextValidTime.getTime()); } else { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java index 9340cae6..ac0019d5 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java @@ -51,7 +51,10 @@ public interface XxlJobInfoDao { public List scheduleJobQuery(@Param("maxNextTime") long maxNextTime, @Param("pagesize") int pagesize ); /** - * update schedule job, limit "trigger_status = 1"(avoid stopping tasks from being opened) + * update schedule job + * + * 1、can only update "trigger_status = 1", Avoid stopping tasks from being opened + * 2、valid "triggerStatus gte 0", filter illegal state * * @param xxlJobInfo * @return diff --git a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml index 7c135cba..0dc53ac1 100644 --- a/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml +++ b/xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml @@ -233,7 +233,7 @@ SET trigger_last_time = #{triggerLastTime}, trigger_next_time = #{triggerNextTime} - + , trigger_status = #{triggerStatus} WHERE id = #{id}