在不同队列 +rabbitmq+nodejs 上并行消费消息



看起来唯一用于通过 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);
}

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

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

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

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

最新更新