2012-05-09 76 views
0

我有一個使用AMQP的後臺作業處理系統。多個服務器正在消耗來自同一隊列的作業。每臺服務器都運行4個工作進程。到現在爲止還挺好。雙隊列同步和性能

現在工作本身需要處理,需要一些IPC,爲了保持一致,我使用AMQP隊列(當然不同)。當時的想法是每個工人,都會有它的IPC對口,像這樣:

    / IPC queue \ 
Main queue ---> * W1/    \ W1-counterpart 
       > * W2/    \ W2-counterpart 
       > * W3/    \ W3-counterpart 
       > * W4/    \ W4-counterpart 
        \ IPC Result queue/

的同行可以獨立運行,所以如果W3-對口正在處理中,W1工作沒關係。我注意到問題在於系統似乎並沒有被完全利用。即使主隊列中如果有多個作業,似乎只有2個同時處理,在不同的時刻,所有4個都被使用。爲什麼?爲什麼這不是一直工作?

回答

0

我建議在詢問傳入隊列是否爲空/非空時,添加一些調試打印結果或類似結果。

+0

我不明白,我該如何達到/獲得什麼? – skrat