我以Celery(與Django集成)開始。芹菜:安排使用上次執行結果的任務
我想每5分鐘安排一次任務。這個任務可以有一個參數,它是最後一個任務執行結果(它充當一個上下文)。
我發現如何鏈和安排任務,但我不能找到合適的方式來提供這種「上下文」下一個任務。
很抱歉,如果我錯過了芹菜的文檔中的東西..
感謝您的幫助, 阿爾諾。
我以Celery(與Django集成)開始。芹菜:安排使用上次執行結果的任務
我想每5分鐘安排一次任務。這個任務可以有一個參數,它是最後一個任務執行結果(它充當一個上下文)。
我發現如何鏈和安排任務,但我不能找到合適的方式來提供這種「上下文」下一個任務。
很抱歉,如果我錯過了芹菜的文檔中的東西..
感謝您的幫助, 阿爾諾。
我認爲對這個問題使用一些持久性存儲會更好。但是你可以使用eta
或countdown
parameters運行芹菜延遲任務:
的ETA(預計到達時間)允許您設置一個特定的日期和 時間即是您的任務將被執行的最早時間。 倒計時是在未來幾秒內設置eta的捷徑。
我實現了亞歷克斯VASI的解決方案。
首先,我試圖用相同的ID爲每個任務,但有時,任務不能檢索的最後一個結果。
我搬到了回調的方式,所以每次我的任務已經結束的時候,我開始用一種正確的ETA另一個任務並通過最後的結果作爲參數。 它工作得很好。
對於錯誤處理,我附接到task_failure signal的方法。
嘿亞歷克斯, 謝謝您的回答。目前,我正在使用Redis DB來存儲結果。你認爲這是持久的嗎? 我明白eta /倒計時,但我看不到如何檢索下一個任務的最後結果? 感謝您的幫助。 –
@ arnaud.breton我的想法是將結果作爲參數發送給任務。計算完成後,只需在任務內計劃延遲任務,並計算結果即可。當然,使用存儲(例如Redis)和定期任務會更可靠。 –