gpt4 book ai didi

php - 除了第一个小时的第一分钟 "0" "0",每 2 分钟运行一次 cron 作业

转载 作者:可可西里 更新时间:2023-11-01 13:10:12 25 4
gpt4 key购买 nike

我在 cPanel 中有一个每 2 分钟运行一次的简单 cron 作业:

*/2 * * * *

默认情况下,“0”分钟是 cron 作业的开始,例如 0、2、4、6、8、10 等...

如何在 cron 中跳过“0”小时(上午 12 点)的“0”分钟?我这样做是因为这个 cron 依赖于另一个每天凌晨 12 点运行一次的 cron。所以我不希望它们重叠。

简而言之,我需要这个 cron 每 2 分钟运行一次,除了 00:00 和 12:00AM。

最佳答案

这是您的 cron 作业:

*/2 * * * *

然后你说:

How to skip the "0" minute of the "0" hour (12AM) in the cron? I do this because this cron depends on another cron which runs once daily at 12AM. So I don't want them to overlap.

问题不在于 cron 作业,而在于您的脚本逻辑。或许您可以做一些事情,比如在第一份工作中创建某种指标,第二份工作会根据这些指标进行操作,这样它们就不会发生冲突。

也许你应该把你的 cron 改成不优雅的,但是像这样每 2 分钟具体一次:

2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * *

一个概念是将间隔 ( 2-58 ) 与频率 ( */2 ) 相结合,但不清楚这是否可行。

2-58/2 * * * *

编辑:根据原发布者留下的评论:

In short, I need this cron to run every 2 minutes except 12AM.

如果是这种情况,您可能必须像这样设置混合的 cron 作业:

*/2 1-23 * * *
2-58/2 0 * * *

第一个 cron 条目将每隔 2 运行一次作业从凌晨 1:00 到晚上 11:00 分钟。

下一个 cron 条目将每隔 2 运行一次作业从 2-58 分钟仅在午夜分钟。由于这第二份工作跳过了 00期间午夜时分,此组合应该适合您。

但话虽如此,但实际上鼓励开发人员扩展其应用程序逻辑以避免某些无法正常工作的场景的原因正是这种双入口逻辑。

例如,我有一些在标准 Unix 中创建锁定文件的 bash 脚本 /tmp目录。它们被设置为每 5 分钟运行一次,但脚本本身具有逻辑以确保它在执行任何操作之前首先要做的是检查该锁是否存在。如果锁在那里?没做什么。如果锁不在那里,那就疯了!

关于php - 除了第一个小时的第一分钟 "0" "0",每 2 分钟运行一次 cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23846952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com