2013-03-18 155 views
1

当您订阅独占队列(一次只允许一个使用者)时,node-amqp在超额订阅队列时引发异常(已经有消费者)。在node-amqp(node.js)中处理独占队列订阅时出错

  • 我试过使用.on(“error”,cb)语法。
  • 我试过错误域(节点0.10.0)
  • 的try/catch显然没有奏效

这里是我的订阅行,但它没有什么特别的:

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 

节点AMQP里面找我看到他们implem在模块内部建立一个独立的任务队列,以便在发生错误时,任务在独立的上下文中运行。

是否有任何变通/修复? ...或者我只是做错了什么?

+0

我想你会得到一个更好的答案与核心开发人员:https://github.com/postwait/node-amqp/issues – 2013-03-18 13:09:47

+0

Node.js未捕获的错误处理解释在http://stackoverflow.com/questions/7310521/node-js-best-practice-exception-handling这个例子适用于我。 – 2013-03-19 03:16:34

回答

2

我想你想要做的是赶上在AMQP connection错误。 至于你提到的node-amqp捕获错误在不同的环境,但你可以听,然后在连接上:

yourConnectionVar.on('error', function(err) { 
    //do something 
    console.log('An error occurred' + err); 
}); 

我希望这有助于。

干杯!

+0

我认为这和我们在没有node-amqp手术的情况下一样好。谢谢。 – DrFriedParts 2014-06-06 02:52:52