From 7eaddd16f9cec7a4eab5bf036fb56e9efd2b20f0 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 15 Jun 2024 17:57:13 +0800 Subject: [PATCH] 【修复】定时任务指定某一年执行时,只会执行一次,后台查看任务详细会报错 --- yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/util/CronUtils.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/util/CronUtils.java b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/util/CronUtils.java index a97a8e1..5658fa3 100644 --- a/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/util/CronUtils.java +++ b/yudao-framework/yudao-spring-boot-starter-job/src/main/java/cn/iocoder/yudao/framework/quartz/core/util/CronUtils.java @@ -34,24 +34,24 @@ public class CronUtils { * @return 满足条件的执行时间 */ public static List getNextTimes(String cronExpression, int n) { - // 获得 CronExpression 对象 + // 1. 获得 CronExpression 对象 CronExpression cron; try { cron = new CronExpression(cronExpression); } catch (ParseException e) { throw new IllegalArgumentException(e.getMessage()); } - // 从当前开始计算,n 个满足条件的 + // 2. 从当前开始计算,n 个满足条件的 Date now = new Date(); List nextTimes = new ArrayList<>(n); for (int i = 0; i < n; i++) { Date nextTime = cron.getNextValidTimeAfter(now); + // 2.1 如果 nextTime 为 null,说明没有更多的有效时间,退出循环 if (nextTime == null) { - // 如果 nextTime 为 null,说明没有更多的有效时间,退出循环 break; } nextTimes.add(LocalDateTimeUtil.of(nextTime)); - // 切换现在,为下一个触发时间; + // 2.2 切换现在,为下一个触发时间; now = nextTime; } return nextTimes; -- libgit2 0.21.4