2010-09-10 51 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

相關問題