Django通過一個腳本運行鏈(如果/在瀏覽器中打開,通過延遲方法調用1000個任務)產生多個芹菜任務。芹菜全部生成任務狀態
如果在前面的腳本運行中排隊的任務仍在運行,我需要一些能夠限制新任務生成的內容。
Django通過一個腳本運行鏈(如果/在瀏覽器中打開,通過延遲方法調用1000個任務)產生多個芹菜任務。芹菜全部生成任務狀態
如果在前面的腳本運行中排隊的任務仍在運行,我需要一些能夠限制新任務生成的內容。
你需要一個分佈式鎖,這是芹菜本身不提供的。
對於這些類型的鎖,我發現redis.Lock
對大多數情況很有用。如果你需要一個信號量,你可以使用redis的atomic incr/decr函數以及某種看門狗機制來確保你的進程仍在運行。
可以通過設置限制在同一時間一種類型的運行的任務數:
rate_limit = 「1000/m」
=> 1000個僅此類型的任務可以每分鐘運行。 (見http://docs.celeryproject.org/en/latest/userguide/tasks.html#list-of-options)