【发布时间】:2021-10-02 21:11:10
【问题描述】:
现在我正在运行我的计划任务,从 00h05 开始。
当前 cron:* 5 0 * * *
到目前为止,我已经按计划完成了这个 cron。我的 cron 表达对吗,对我有什么建议吗?
【问题讨论】:
标签: spring-boot cron scheduled-tasks
现在我正在运行我的计划任务,从 00h05 开始。
当前 cron:* 5 0 * * *
到目前为止,我已经按计划完成了这个 cron。我的 cron 表达对吗,对我有什么建议吗?
【问题讨论】:
标签: spring-boot cron scheduled-tasks
有点,这是每天凌晨 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 个可能的值是正确的。
【讨论】: