当您订阅独占队列(一次只允许一个消费者)时,node-amqp会在队列超额订阅时抛出异常(已有消费者)。
这是我的订阅行,但没什么特别的:
queue.subscribe({ack: true, prefetchCount: 1, exclusive: exclusive}, cbExecute).addCallback((ok) -> listeners[type] = ok.consumerTag);
在使用队列时,您会收到未处理的异常:
ACCESS_REFUSED - queue 'respQ' in vhost 'brkoacph' in exclusive use
查看node-amqp内部我看到它们在模块内部实现了一个独立的任务队列,这样当错误发生时,任务就在独立的上下文中运行。
有没有解决方法? ......或者我只是做错了什么?
答案 0 :(得分:2)
我认为你想要做的是抓住AMQP connection
中的错误。
正如您所提到的,node-amqp
在不同的上下文中捕获错误,但您可以在连接上收听:
yourConnectionVar.on( 'error', function(err) {
//do something
console.log('An error occurred' + err);
});
我希望这会有所帮助。
干杯!