我在cPanel中有一个简单的cron作业,每2分钟运行一次:
*/2 * * * *
Run Code Online (Sandbox Code Playgroud)
默认情况下,"0"分钟是cron作业的开始,如0,2,4,6,8,10等...
如何跳过cron中"0"小时(12AM)的"0"分钟?我这样做是因为这个cron取决于另一个每天早上12点运行一次的cron.所以我不希望它们重叠.
简而言之,我需要这个cron每隔2分钟运行一次,除了凌晨00:00 00:00.
Jak*_*uld 14
这是你的cron工作:
*/2 * * * *
Run Code Online (Sandbox Code Playgroud)
但是你说:
如何跳过cron中"0"小时(12AM)的"0"分钟?我这样做是因为这个cron取决于另一个每天早上12点运行一次的cron.所以我不希望它们重叠.
问题不是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 * * * *
Run Code Online (Sandbox Code Playgroud)
一个概念是将interval(2-58)与频率(*/2)结合起来,但不清楚这是否可行.
2-58/2 * * * *
Run Code Online (Sandbox Code Playgroud)
编辑:根据原始海报留下的评论:
简而言之,除了上午12点,我需要每2分钟运行一次这个cron.
如果是这种情况,您可能需要设置这样的cron作业组合:
*/2 1-23 * * *
2-58/2 0 * * *
Run Code Online (Sandbox Code Playgroud)
第一个cron条目将在每2分钟从凌晨1:00到晚上11:00运行.
下一个cron条目将每2分钟运行一次工作,从2-58几分钟只在午夜开始.由于第二份工作0在0午夜时分跳过,这个组合应该对你有用.
但是,这就是说,这种双入口逻辑是为什么实际上鼓励开发人员扩展他们的app逻辑以避免某些情况不起作用的原因.
例如,我有一些bash脚本在标准Unix /tmp目录中创建锁文件.它们被设置为每5分钟运行一次,但是脚本本身具有逻辑,以确保在检查是否存在该锁之前它首先要做的事情.如果有锁?没做什么.如果没有锁,那就疯了!
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           17714 次  |  
        
|   最近记录:  |