处理node-amqp(node.js)中的独占队列订阅时出错
当您订阅独占队列(一次只允许一个消费者)时,node-amqp会在队列超额订阅(已经有消费者)时抛出exception。
- 我试过使用.on(“error”,cb)语法。
- 我试过错误域(节点0.10.0)
- 尝试/抓住显然没有工作
这是我的订阅线,但没什么特别的:
queue.subscribe({ack: true, prefetchCount: 1, exclusive: exclusive}, cbExecute).addCallback((ok) -> listeners[type] = ok.consumerTag);
当使用队列时,会得到未处理的exception:
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); });
我希望这有帮助。
干杯!