当您订阅独占队列(一次只允许一个消费者)时,当队列超额订阅(已经有一个消费者)时,node-amqp会抛出异常。
- 我试过使用。on("error",cb)语法。
- 我已经尝试错误域(节点0.10.0)
- Try/catch显然不起作用
这是我的订阅线,但没有什么特别的:
queue.subscribe({ack: true, prefetchCount: 1, exclusive: exclusive}, cbExecute).addCallback((ok) -> listeners[type] = ok.consumerTag);
当使用queue时,会抛出一个未处理的异常:
ACCESS_REFUSED - queue 'respQ' in vhost 'brkoacph' in exclusive use
查看node-amqp内部,我看到它们在模块内实现了一个独立的任务队列,因此当错误发生时,任务在独立的上下文中运行。
是否有任何解决方法/修复?…还是我做错了什么?
我认为您要做的是捕获AMQP connection
中的错误。正如您所提到的,node-amqp
捕获不同上下文中的错误,但是您可以在连接上侦听它们:
yourConnectionVar.on( 'error', function(err) {
//do something
console.log('An error occurred' + err);
});
我希望这对你有帮助。
干杯!