2012-05-09 8 views
0

AMQPを使用したバックグラウンドジョブ処理システムがあります。複数のサーバーが同じキューからジョブを消費しています。これらの各サーバーは、4つのワーカープロセスを実行しています。ここまでは順調ですね。ダブルキューの同期とパフォーマンス

ここで、処理するジョブ自体は、一貫性を保つためにIPCが必要ですが、AMQPキュー(もちろん別のもの)をもう一度使用します。

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

W3-対応がW1のジョブを処理している場合、それはOKですので対応は、独立して動作することができます。アイデアは、各ワーカーが、それはこのようなIPCの相手、だ持っているだろうということでした問題は、私が気付いたことですが、システムは常に完全に活用されていないようです。たとえメインキューがジョブでいっぱいであっても、2つしか同時に処理されていないように見えますが、別の瞬間に4つすべてが使用されます。どうして?なぜこれはいつも働いていないのですか?

答えて

0

受信キューが空/非空であるかどうかを尋ねるときに、デバッグ用のプリントなどを追加することをお勧めします。

+0

私はそれを得ることはできません、これで達成/獲得するものは何ですか? – skrat

関連する問題