2012-04-17 75 views
2

先決條件:有一個小芹菜集羣處理一些任務。每個芹菜實例幾乎沒有工人在運行。一切都在燒瓶下運行。使芹菜停止消費任務

任務:我需要能夠從代碼中暫停/恢復從特定節點中消耗任務。即任務可以做出決定,如果當前的芹菜實例和她的所有工人應該暫停或恢復消耗任務。

沒有找到任何直接的解決方法。有什麼建議麼?

在此先感謝!

回答

0

也許更好的策略是將工作分成幾個隊列。

有一個default隊列,其中所有任務都啓動。根據您的邏輯,觀察默認隊列的工作人員可以將子任務添加到其他活動隊列中。如果您可以直接從瓶子向活動隊列中添加任務,則可能不需要此額外隊列。

這樣,每個節點不必擔心它是暫停還是活動。它只會消耗已添加到隊列中的所有內容。這些特定於位置的隊列將爲空(並因此暫停),除非默認工作人員已添加子任務。

0

Control.cancel_consumer(queue, **kwargs)reference)就是您可能需要的所有用例。