我正在使用Rabbitmq topic exchange
来使用从客户端推送的消息。因此,我创建了一个队列并将该队列绑定到默认交换机amq.topic
。
amqp.connect(uri, (error0, connection) => {
if (error0) {
throw error0;
}
connection.createChannel((error1, channel) => {
if (error1) {
throw error1;
}
channel.assertExchange(exchange, 'topic', {
durable: true
});
channel.assertQueue('', { durable: true });
channel.bindQueue('queue1', exchange, key);
try {
channel.consume('queue1', msg => {
if (msg !== null) {
console.log(" [x] %s:'%s'", msg.fields.routingKey, msg.content.toString());
}
}, { noAck: true },);
但是每次amqp连接并使用消息时,都会创建Temporary queues
并没有删除它?
为什么我有队列时会在消耗时间中创建临时队列?以及如何避免创建?
答案 0 :(得分:0)
尝试声明具有空白名称的队列时,将生成具有随机名称amq.gen-*
的队列。这里的问题是您要传递空白值作为队列名称。将其更改为以下内容。
channel.assertQueue('demo-queue', { durable: true });
有关更多详细信息,请参见https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html