2010-07-15 50 views
2

有沒有辦法在ROR中設置一個在特定時間觸發的回調?在特定時間在Rails中執行操作

可以說我正在運行一個在特定時間爆發的比賽。可以說7月28日星期一9點。我想成立一​​個觀察員,在7月28日星期一9點執行一個功能。軌道是否有辦法做到這一點?

回答

2

Delayed Job有一個run_at字段。您必須在後臺始終運行一個工作進程並查找需要運行的作業,但是如果您的應用程序正在執行此操作,則可能比編寫新的cron作業更容易。

所以,你可以在你的Contest模型的方法被調用的after_create回調,設置了延遲作業AT的指定日期發送電子郵件到隨機的贏家。

如果它是一個時間,還是很罕見的合同,不過,我會同意關於使用whenever

+0

會發生這種情況相當多,所以我覺得延遲的工作可能是最好的,謝謝。 – TheDelChop 2010-07-16 05:01:01

0

你最好寫一個在你需要的時候通過crontab運行的ruby腳本。

0

我同意crontab,但我喜歡whenever。它與cron很好地集成在一起,你可以用你的repo存儲,並且它與capistrano很好地集成。

相關問題