2012-03-06 111 views
8

我需要在倒計時後運行芹菜任務,但能夠在某些條件下重置倒計時。例如,我想使用countdown=15調用apply_async,但是如果某個事件在執行任務之前發生,我想將該倒計時再次設置爲15秒。重置芹菜任務倒計時

從文檔和谷歌搜索我想我可以通過保存任務ID,然後撤銷並重新創建任務,如果事件發生。我想知道是否有一個更優雅的方法。

回答

1

而不是設置倒計時,你不能撤銷這個任務,並創建一個新的?

+1

正如我所說,這是我在閱讀文檔後提出的,但當時它感覺不對,所以我想知道是否有另一種方法來做到這一點。 – 2012-11-27 01:04:18

0

使用某些緩存(如Redis)來存儲某個鎖定密鑰。當您調用該鍵的apply_async增量值時。當你在芹菜中執行這個任務 - 遞減這個值。如果值爲0 - 執行任務。所以如果有兩次apply_async調用,你的計數器將會是2,並且第一次執行的任務將被跳過。我覺得this code can help you