我正在使用nodeqs的amqplib库来处理RabbitMQ。我正在尝试使用函数checkQueue
来检查队列是否存在:
mychannel.checkQueue('xxx', function (err, ok) {
console.log(err);
console.log(ok)
});
但它不仅会引发错误,还会关闭频道。如何安全地检查队列是否存在?
答案 0 :(得分:0)
您无需冒险破坏频道。解决方法是创建一个临时通道,您可以使用它来进行检查。
来自amqp.node dev的评论: (https://github.com/squaremo/amqp.node/issues/280)
checkQueue的行为由协议决定,但也可以 解决了。一种策略是创造一种牺牲品#34;额外的渠道 用于测试队列是否存在。一旦你得到答案,你就可以 扔掉额外的通道,或者保留它以进行更多的测试。