【问题标题】:Cron expression to run the task at 11am finished at 11pm在上午 11 点运行任务的 Cron 表达式在晚上 11 点完成
【发布时间】:2016-12-29 05:09:27
【问题描述】:

我需要 cron 表达式来安排我的任务。任务执行应每天上午 11 点开始,每分钟执行一次,直到晚上 11 点(最后执行时间)。

目前,我不知道如何设置最后一次执行应该在 23:00。

* * 11-23 * * * - 根据这个表达式,任务将从 11:00 运行到 23:59。

* * 11-22 * * *- 根据这个表达式,任务将从 11:00 运行到 22:59。所以错过了 23:00 的最后一次执行。

请告诉我如何解决这个问题。

【问题讨论】:

    标签: java cron cron-task cronexpression spring-scheduled


    【解决方案1】:

    我已找到解决此问题的方法。解决方法是创建两个 cron 表达式:

    1. 0 * 11-22 * * * - 上午 11 点开始,下午 22:59 结束。

    2. 0 0 23 * * * - 此任务每天 23:00 仅开始一次。

    所以,我的代码现在看起来像这样:

    @Scheduled(cron = "0 * 11-22 * * *")
      public void processPerformances() {
        // do something();
    
      }
    
      @Scheduled(cron = "0 0 23 * * *")
      public void processPerformancesLastTime() {
        processPerformances();
      }
    

    【讨论】:

      猜你喜欢
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-03
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 2015-06-20
      相关资源
      最近更新 更多