From fbda2f16d63dcad15de13ab0997ef51257e5815b Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期五, 26 六月 2026 10:53:52 +0800
Subject: [PATCH] feat: 更新定时任务调度逻辑,支持启用状态下重新调度任务
---
src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
index 0af9a9f..6bc7e51 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
@@ -168,6 +168,10 @@
TimingTask oldTask = timingTaskMapper.selectById(timingTaskDto.getId());
Integer oldIsActive = oldTask != null ? oldTask.getIsActive() : 0;
Integer newIsActive = timingTask.getIsActive();
+ if (Integer.valueOf(1).equals(newIsActive)) {
+ LocalDateTime firstExecutionTime = calculateFirstExecutionTime(timingTask);
+ timingTask.setNextExecutionTime(firstExecutionTime);
+ }
int result = timingTaskMapper.updateById(timingTask);
if (result > 0) {
// 浠庡惎鐢ㄥ彉涓哄仠鐢紝绉婚櫎浠诲姟
@@ -178,9 +182,6 @@
// 浠庡仠鐢ㄥ彉涓哄惎鐢紝娣诲姞浠诲姟
else if (!Integer.valueOf(1).equals(oldIsActive)
&& Integer.valueOf(1).equals(newIsActive)) {
- // 璁$畻棣栨鎵ц鏃堕棿
- LocalDateTime firstExecutionTime = calculateFirstExecutionTime(timingTask);
- timingTask.setNextExecutionTime(firstExecutionTime);
try {
timingTaskScheduler.scheduleTimingTask(timingTask);
} catch (Exception e) {
@@ -188,6 +189,16 @@
throw new ServiceException("娣诲姞宸℃浠诲姟澶辫触");
}
}
+ // 淇濇寔鍚敤鐘舵�侊紝閲嶆柊璋冨害浠诲姟
+ else if (Integer.valueOf(1).equals(oldIsActive)
+ && Integer.valueOf(1).equals(newIsActive)) {
+ try {
+ timingTaskScheduler.rescheduleTimingTask(timingTask);
+ } catch (Exception e) {
+ log.error("鏇存柊宸℃浠诲姟澶辫触 : {}", e.getMessage(), e);
+ throw new ServiceException("鏇存柊宸℃浠诲姟澶辫触");
+ }
+ }
}
return result;
}
--
Gitblit v1.9.3