【问题标题】:Cron start at 00h05 everydayCron 每天从 00h05 开始
【发布时间】:2021-10-02 21:11:10
【问题描述】:

现在我正在运行我的计划任务,从 00h05 开始。

当前 cron:* 5 0 * * *

到目前为止,我已经按计划完成了这个 cron。我的 cron 表达对吗,对我有什么建议吗?

【问题讨论】:

    标签: spring-boot cron scheduled-tasks


    【解决方案1】:

    有点,这是每天凌晨 12:05 (00:05) 的表达式,以及在那一分钟的每一秒!

    这是评估 6 部分 cron 表达式的方法:

     * 5 0 * * *
     - - - - - -
     | | | | | |
     | | | | | +--- day of week (0 - 6) (Sunday=0)
     | | | | +----- month (1 - 12)
     | | | +------- day of month (1 - 31)
     | | +--------- hour (0 - 23)
     | +----------- min (0 - 59)
     +------------- sec (0 - 59)
    
    

    原来是这样的:

    任意秒,仅 5分钟,仅零小时。

    这意味着它是正确的:

    00:05:00, 00:05:01, 00:05:02, 00:05:03, 00:05:04, 00:05:05,...

    你真正想要的是这个:

     0 5 0 * * *
    

    至于建议,如果您的引擎支持它们,我将使用 5 部分 cron 代替,这会忽略第二个组件,并且在跨 UNIX 平台中更常见。

    评估cron表达式的关键实际上是从右边而不是左边开始!

    网上有很多cron表达式生成器,这可能是我最喜欢的:

    CronTab GUI http://corntab.com

     5 0 * * *
     - - - - -
     | | | | |
     | | | | +----- day of week (0 - 6) (Sunday=0)
     | | | +------- month (1 - 12)
     | | +--------- day of month (1 - 31)
     | +----------- hour (0 - 23)
     +------------- min (0 - 59)
    

    Spring 使用 6 部分 crons。如果您使用在线工具生成 cron 表达式,请务必添加前导 seconds 组件,AS A ZERO (0) 如果您不关心 seconds 组件是什么! * 表示表达式对于 ALL 个可能的值是正确的。

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 1970-01-01
      • 2016-04-18
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 2021-07-26
      相关资源
      最近更新 更多