amqplib - 如何安全地检查队列是否存在

时间:2016-08-22 20:41:26

标签: node.js rabbitmq amqp

我正在使用nodeqs的amqplib库来处理RabbitMQ。我正在尝试使用函数checkQueue来检查队列是否存在:

mychannel.checkQueue('xxx', function (err, ok) { 
    console.log(err);
    console.log(ok)
});

但它不仅会引发错误,还会关闭频道。如何安全地检查队列是否存在?

1 个答案:

答案 0 :(得分:0)

您无需冒险破坏频道。解决方法是创建一个临时通道,您可以使用它来进行检查。

来自amqp.node dev的评论: (https://github.com/squaremo/amqp.node/issues/280

  

checkQueue的行为由协议决定,但也可以   解决了。一种策略是创造一种牺牲品#34;额外的渠道   用于测试队列是否存在。一旦你得到答案,你就可以   扔掉额外的通道,或者保留它以进行更多的测试。