2010-08-21 115 views
6

我想每10分鐘做一次cron作業,但我的系統只做了1小時。所以我正在尋找一種方法來做到這一點。我見過Timersleep,但我不確定如何做到這一點,甚至更好,但實現這一目標的資源。如何讓Ruby每10分鐘運行一次任務?

+0

你怎麼會知道,當他們做跳舞? (http://en.wikipedia.org/wiki/Minuet) – JasonFruit 2010-08-21 18:12:42

+0

有沒有攝製組但本質上它在做什麼是添加RSS源,並有一個「entries_total」的屬性,得到更新並通知飼料的總數量越來越添加。 – s84 2010-08-21 18:23:05

回答

4

看看http://rufus.rubyforge.org/rufus-scheduler/

魯弗斯調度是一個Ruby寶石調度的代碼塊(工種)。它瞭解在特定時間,某個時間,每x次或僅通過CRON語句執行工作。 rufus-scheduler不能替代cron/at,因爲它運行在Ruby內部。

+0

看起來像可以工作。我會回到這個。 – s84 2010-08-21 18:24:22

+0

我自己並沒有使用它,但是我在創建一個帶有node.js的作業調度程序時從中獲得了一些想法。代碼看起來不錯,我認爲它適用於你。另外:http://adam.heroku.com/past/2010/4/13/rethinking_cron/ – grm 2010-08-21 18:32:19

+0

我看到這篇文章還提到:http://github.com/bvandenbos/resque-scheduler – grm 2010-08-21 18:33:46

2

要做到這一點可靠,投資於VPS並根據需要創建10分鐘的cron作業。試圖獨自模擬cron很可能會以無法預料的方式失敗。

創建睡眠過程,是不是要走這個道路;如果你的服務器不允許你自由地創建你自己的cron,你可能無法爲這類事情創建自己的後臺進程。您可以根據每項請求查看並查看需要完成多少工作(如果是上次請求後的25分鐘,則可能需要執行兩次),然後返回並回溯處理。

不過,傷勢嚴重。你需要你自己的服務器來可靠地做到這一點。

+0

沒有理由重新實現車輪,尤其是考慮到廣泛使用,穩健和成熟的cron。 +1 – 2010-08-21 18:27:14

相關問題