*/20 * * * *
确保它每 20 分钟运行一次,我想每 20 分钟运行一次任务,从每小时 5 点开始,这对 Cron 可行吗?可不可能是:
5/20 * * * *
?
要从整点 5 点开始每 20 分钟运行一次任务,请尝试以下操作:
5-59/20 * * * *
解释
分钟字段中的 *
与 0-59/1
相同,其中 0-59
是 范围,而 1
是 步骤。该命令将在 范围 (0) 内的第一分钟运行,然后在与第一分钟相距 step (1) 的所有连续分钟运行,直到最后一个 ( 59)。
这就是为什么 */20 * * * *
将在 0 分钟、20 分钟后和 40 分钟后运行 - 这与每 20 分钟相同。但是,*/25 * * * *
将在 0 分钟、25 分钟后和 50 分钟后运行 - 这与每 25 分钟不同。这就是为什么通常希望在分钟字段中使用一个平均分为 60 的步长值。
因此,要偏移开始时间,请明确指定范围并将第一个值设置为偏移量。
例子
5-59/20 * * * *
将在 5 分钟后、25 分钟后和 45 分钟后运行。
10-59/25 * * * *
将在 10 分钟后和 35 分钟后运行。
1-59/2 * * * *
将每隔一分钟运行一次。
当然!
5,25,45 * * * * /your/cron
5-59/20
是可能的,但 5,25,45
的优点是它立即非常清楚它的作用。
您可以尝试:*/5 * * * * sleep N; your job
sleep `shuf -i 1-100 -n 1`
可以解决问题。