Forráskód Böngészése

【修复】定时任务指定某一年执行时,只会执行一次,后台查看任务详细会报错

YunaiV 9 hónapja
szülő
commit
7eaddd16f9

+ 4 - 4
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<LocalDateTime> 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<LocalDateTime> 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;