2014-08-28 34 views
0

只運行的作業我有4名芹菜工人每個6.芹菜:確保工人沒有從一個用戶

併發我有用戶提交不同數量的就業機會(從1到20)。

如何確保每個用戶的工作得到平等的處理時間,一個用戶的工作不填滿隊列迫使其他用戶的作業等。

恐怕如果工人結束了通過提交第一個用戶的所有作業準備,其他用戶的排隊的作業必須等待第一個用戶完成,不便。

有沒有辦法讓芹菜工人意識到一個用戶的工作阻礙了其他用戶的排隊工作。相反,我可以在任何特定時間從每個用戶運行最多一份作業嗎?

我有一個隊列,我服從,我需要爲每個用戶隊列中的所有用戶的作業,不知怎麼有循環策略,從每個用戶的隊列中提取一個工作嗎?

回答

0

此刻Celery doesn't support priority queues

爲每個用戶建立一個隊列並基於循環算法對它們進行調度似乎是很多工作。爲您解決問題

一個簡單的方法是創建一個臨時表&存儲進入任務的詳細信息。先將收到的任務發送給芹菜。在完成時,您可能會收到來自不同用戶的大量任務。現在根據用戶ID,完成任務&未完成任務,可以將大部分合適的任務發送給芹菜執行。

+0

這就是我最終做的是 – user299709 2014-09-07 11:14:20