2014-04-15 110 views
0

使用Celery和(如果有要求的話)rabbitmq broker和django作爲結果後端。獲取某些芹菜任務,只在特定時間運行

我有成千上萬的任務,因此完成它們需要幾周的時間。但是,其中一些我只想在一天中的某幾個小時之間運行。這是因爲它們涉及從明確請求此行爲的公用服務器下載文件。每個任務需要幾分鐘才能完成。如何最好地去做這件事?

+0

只需在芹菜任務中檢查時間,然後稍後嘗試即可:http://docs.celeryproject.org/en/latest/userguide/tasks.html#using-a-custom-retry-delay –

+0

Rachel - 我擔心會有效率低下。我們可能會在錯誤的時間重複執行相同的任務,例如,如果Celery通過100,000個任務並重新安排它們以備後用。當後來到來時,沒有足夠的時間來完成所有100,000個,所以他們中的大部分都必須重新安排。然後再次。 – Ben

回答

0

您可以使用Crontab schedules來設置您的需要。

+0

我不知道如何使這項工作。我不知道何時準確安排每項任務的時間,只是應該在18:00到09:00之間的某個時間進行。這可能是明天或下週,只要我有一段時間,並且只發生在指定的時間內。 – Ben

+0

在文檔中,您有完整的示例列表,您可以如何配置crontab。在你的情況下,你可以做這樣的事情:'crontab(分鐘='*/10',小時= '18-9')'這將在18PM和9AM之間每10分鐘觸發一次任務。 – daniula