2012-09-05 146 views
1

我們需要一項服務,我們可以使用它來安排事件。例如,我們可能需要在3點(一次)運行或每2小時(多次)運行的任務。優選地,每個任務可以配置有它將發佈到的AMQP隊列。調度任務服務

我們可以通過創建一個OS定時器事件來輕鬆實現。我擔心如果這項服務出現故障,該如何恢復。我們可以使用CRON,如果它是允許即時調度的。

我正在尋找一種方法來避免重新發明車輪。如果沒有這樣做的項目,我們將創建一個。不過,這是一件很平常的事情,所以如果現在沒有人把它放在那裏,我會感到驚訝。

回答

2

Celery解決了這個問題。

celery.schedules允許您定義週期性任務。您可以覆蓋is_due來執行諸如schedule once a month之類的操作。你可以schedule tasks to execute at a specific time使用periodic_taskcelery-beat(我相信這是現在的標準方法)。另一種方法是使用Task.apply_async的參數eta

+0

芹菜似乎是一個非常重量級的解決方案。還有很多我們從未使用過的附加功能。我會再看看芹菜 - 也許我們可以用其他方式使用它。 –