在node-amqp (node.js)中处理排他队列订阅错误



当您订阅独占队列(一次只允许一个消费者)时,当队列超额订阅(已经有一个消费者)时,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);
});

我希望这对你有帮助。

干杯!

相关内容

  • 没有找到相关文章

最新更新