如何处理加班crons

时间:2011-11-09 07:11:42

标签: cron crontab

假设我每分钟都有cron任务在运行。如果每次,该任务需要超过一分钟的时间运行,将会发生什么。下一个cron会等待第一个cron,还是会在没有任何检查的情况下运行。

我想每分钟运行一次cron任务,并且在长时间运行任务/情况的情况下,我不会过度研究cron任务。

请帮忙。

3 个答案:

答案 0 :(得分:0)

这取决于你的跑步方式。如果它是您自己的脚本,您可以实现锁定/锁定检查机制以避免运行重复。

但那不是cron的工作。

答案 1 :(得分:0)

是的,cron将继续每分钟开始你的1分钟运行过程,直到崩溃。

如果你能在启动时基本上这样做,你会想要把某种锁定放在你的工作中:

if not get_lock()
    print "Another process is running"
    exit

当然,这假设您拥有正在运行的代码。如果您正在运行一个没有编码的命令,那么我建议构建一个实现上述伪编码逻辑的shell包装器,其中get_lock()将查看是否正在运行此类其他进程。

答案 2 :(得分:0)

正如其他人所提到的,无论您的脚本的其他实例是否仍在运行,CRON都会每分钟运行一次脚本。

如果你想避免这种情况并且不想实现自己的锁定机制,那么你可以尝试使用一个名为The Fat Controller的CRON替代方案,它是一个不断重新运行脚本的守护进程。您可以选择指定运行之间的间隔,也可以选择指定最长执行时间,因此如果脚本变为AWOL,则可以将其终止。

网站上有一些用例和更多信息:

http://fat-controller.sourceforge.net/