Cron表达式在上午11点完成任务,于晚上11点完成

时间:2016-08-22 15:11:17

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

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

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

* * 11-23 * * * - 根据这个表达式,任务将在11:00至23:59之间运行。

* * 11-22 * * * - 根据这个表达式,任务将在11:00至22:59之间运行。因此错过了23:00的最后一次执行。

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

1 个答案:

答案 0 :(得分:0)

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

  1. 0 * 11-22 * * * - 这将于上午11点开始,并于22:59结束。

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

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

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