2012-05-09 43 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