2012-12-18 76 views
-1

我正在用RabbitMQ的芹菜作爲經紀人。我的項目將由一些長時間運行的連續任務組組成。前一組任務的輸出是下一組任務的輸入。芹菜 - 有多少個隊列?

所有的工作節點將首先消耗第一類型(組)的任務,然後所有的工作人員將消耗下一類型的任務,以先前的結果作爲輸入等。

我的問題是,在芹菜,我應該定義多少隊列? 所有任務只有一個隊列?還是應該爲每種類型的任務使用1個隊列? 在這種情況下使用1個隊列或更多隊列的好處是什麼?

預先感謝您!

回答

1

我會分開隊列,以便有兩個。從信息流的角度來看,兩個單獨的隊列更有意義。它還明確表示,信息在這條路徑上流動,任何一個隊列中的所有任務都是相似的。

因此,對多個隊列的好處是任務在邏輯意義上彼此分離。使信息流更易於遵循。如果您的任務隊列變得相當大,那麼考慮多個隊列的設計也會將冗餘應用到系統中,因爲如果需要出現,您可以將隊列分隔到不同的機器上。使用Celery Routing,您可以分隔哪些機器監聽哪個隊列,並將您的任務分離到各種其他機器。

單個隊列的好處是它使用起來很簡單,而且設置起來更容易,但是對於執行任務工作的地方/誰來說,你會失去細緻的控制。而且,從邏輯的角度來看,信息流是不明確的。