并行消耗不同队列上的消息+ rabbitmq + nodejs

时间:2012-11-16 10:19:08

标签: node.js rabbitmq amqp

看起来像是通过rabbitmq编写nodejs应用程序的唯一库就是

https://github.com/postwait/node-amqp

我有一个生产者,它以非常快的速度向多个队列发布消息,而在消费者中我正在为每个队列创建订阅。

connection.on('ready', function () {
  for(var i=0;i<queues.length;i++)
  connection.queue(queues[i],{autoDelete:false}, qOnReady);
});
function qOnReady(q){
 // Catch all messages
  logger("Q "+q.name+" is ready");
  q.bind('#');
 // Receive messages
  q.subscribe(subscriber);
}

但是当我运行消费者时,消耗的所有消息都来自特定队列,直到队列耗尽,订阅不会在另一个队列上启动。如何并行实现消费消息。

1 个答案:

答案 0 :(得分:0)

您可能希望使用异步库来实现队列的并行执行。

虽然不确定它是否符合您的需求。

https://github.com/caolan/async#paralleltasks-callback