2013-12-12 55 views
2

我在Celery中有任務A和B. B是A的拮抗劑。因此,當此任務與相同參數並行運行時,系統會變得不一致。有兩個問題:如何在Celery中崩潰並連續運行任務 - 拮抗者

  1. 我可以依次運行任務A和B嗎?我想連續運行參數1和B,參數1運行B,但A(1)和B(2)可能並行運行。

  2. 有沒有辦法摺疊重複序列的任務,尚未運行?說,我在經紀人(我的情況是Redis)中有ABABAB任務,我可以執行AB嗎?

我傾向於認爲這兩個問題都可以用高級代理解決,但我想避免RabbitMQ的部署。

在此先感謝。

回答

1

我決定在Redis中爲任務維護單獨的隊列。當我將新任務發送給Celery時,我也將其添加到Redis列表中。當任務運行時,它確定它必須做什麼:A或B取決於當前的系統狀態。

解決方案看起來不太好,但我希望這不會導致問題。

相關問題