Spring Scheduling - 午夜每天的 Cron 表达式不起作用?

新手上路,请多包涵

我正在尝试在 Spring 中安排一项任务,该任务将在每天午夜运行。我按照 Spring 的 官方指南 制作了调度程序类,如下所示:

 @Component
public class OverduePaymentScheduler {
    @Scheduled(cron = "0 0 0 * * *")
    public void trackOverduePayments() {
        System.out.println("Scheduled task running");
    }
}

但是,当时钟达到上午 12 点时,任务不会运行。我从这个 链接 的石英调度程序的文档中得到了 cron 表达式。

如果我将 cron 表达式更改为每十秒运行一次的“*/10 * * * * *”,调度程序就可以正常执行。

那么我做错了什么?

原文由 Charlie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 714
2 个回答

我终于让它与这个 cron 表达式一起工作 0 0 0 * * * 但我必须像这样在调度程序类中设置时区。 @Scheduled(cron = "0 0 0 * * *",zone = "Indian/Maldives")

原文由 Charlie 发布,翻译遵循 CC BY-SA 3.0 许可协议

这些是 cron 表达式的有效格式:

  • 0 0 * * * * = 每天每个小时的顶部。
  • */10 * * * * * = 每十秒。
  • 0 0 8-10 * * * = 每天的 8 点、9 点和 10 点。
  • 0 0 6,19 * * * = 每天早上 6:00 和晚上 7:00。
  • 0 0/30 8-10 * * * = 每天 8:00、8:30、9:00、9:30、10:00 和 10:30。
  • 0 0 9-17 * * MON-FRI = 工作日朝九晚五
  • 0 0 0 25 12 ? = 每个圣诞节的午夜

模式是:

 second, minute, hour, day, month, weekday

所以你的答案是:

 0 0 0 * * *

原文由 Rzv Razvan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题