2012-05-09 1 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을위한 작업을 처리하는 경우는 OK입니다. 문제는 시스템이 항상 완전히 활용되지 않는 것 같습니다. 기본 대기열에 작업이 가득차도 2 개만 동시에 처리되는 것처럼 보이지만 다른 순간에는 모두 4 개가 사용됩니다. 왜? 왜 항상 작동하지 않는 걸까요?

답변

0

들어오는 큐가 비어 있거나 비어 있지 않은지 물어볼 때 결과의 일부 디버깅 프린트를 추가하는 것이 좋습니다.

+0

나는 그것을 얻지 못한다. 나는 이것으로 무엇을 성취합니까? – skrat