每当宝石精细工作。如果微小的工作需要超过一分钟,那么

时间:2009-10-31 00:32:33

标签: ruby rubygems cron

我打算使用whenever gem,除此之外还会运行微小的佣金任务。如果我的rake任务需要超过一分钟,那么根据gem的输出,看起来rake任务的第二个实例将启动,即使第一个没有完成。

每当宝石在开始第二次任务之前等待完成任务时,是否会等待?

如果没有,那么解决方法是什么。我相信这个问题在serverfault中更好用,我还是把它放在这里。

2 个答案:

答案 0 :(得分:1)

每当只是写cronjobs,并且不会阻止他们超越自己。这是正在运行的任务的工作。

使用PID文件或文件系统锁来防止任务在其顶部运行。

答案 1 :(得分:0)

在我的预定应用程序中,我扫描进程列表,查找在命令行上使用相同配置文件运行的应用程序的其他实例 - 如果进程已在使用相同的配置文件运行,则退出并记录备注。 / p>

这使程序不会踩到自己......

当进程退出但锁文件仍然存在时,PID文件或某种类型的“锁定”文件很容易出现问题。