2010-09-10 52 views
0

我想设置rake任务通过cron运行。这很容易,但要确保一次只能运行一次该rake任务的副本,并不容易。我想我可以在系统上使用ps来检查并退出rake任务,如果它已经在运行,或者我可以做一个延迟的作业结构,在这里我序列化任务的名称,并在完成时从数据库中删除它,但是你们都推荐什么?如何确保一次只有一个rake任务正在运行?

回答

0

Unix用pid文件解决了这个问题。 Pid文件位于/ var/run中,并包含程序进程标识。这里是手册页:http://fuse4bsd.creo.hu/localcgi/man-cgi.cgi?pidfile+3

你可能会发现它有点旧(我同意),但它是一个经常使用和验证的方法。

+0

这看起来很不错,其实!我找不到有关如何有效使用它的好教程,所以我将采用DelayedJob方法检查PID文件并将其用于我的目的。谢谢。 – tesserakt 2010-09-10 19:45:26