【发布时间】:2010-12-11 19:08:19
【问题描述】:
我计划使用whenever gem,除其他外,它还将运行每分钟的 rake 任务。如果我的 rake 任务花费了超过一分钟,那么根据 gem 的输出,即使第一个还没有完成,第二个 rake 任务似乎也会启动。
每当 gem 会等待 miutely 任务完成后再开始第二个任务?
如果不是,那么解决方法是什么。我相信这个问题在 serverfault 中得到更好的解决,我还是把它放在这里。
【问题讨论】:
我计划使用whenever gem,除其他外,它还将运行每分钟的 rake 任务。如果我的 rake 任务花费了超过一分钟,那么根据 gem 的输出,即使第一个还没有完成,第二个 rake 任务似乎也会启动。
每当 gem 会等待 miutely 任务完成后再开始第二个任务?
如果不是,那么解决方法是什么。我相信这个问题在 serverfault 中得到更好的解决,我还是把它放在这里。
【问题讨论】:
只要只编写 cronjobs,并且不努力阻止它们超载自己。这是正在运行的任务的作业。
使用 PID 文件或文件系统锁来防止任务超出其自身运行。
【讨论】:
在我计划的应用程序中,我扫描进程列表以在命令行上查找使用相同配置文件运行的应用程序的其他实例 - 如果进程已经使用相同的配置文件运行,则退出并记录注释。
这样可以防止程序自己踩到自己...
当进程退出但锁定文件仍然存在时,PID文件或某种类型的“锁定”文件容易出现问题。
【讨论】: