node.js - Nodejs:避免消费者创建临时的rabbitmq队列
问题描述
我正在使用rabbitmqtopic 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
创建并没有删除?
为什么当我有队列时会创建消耗时间的临时队列?以及如何避免创造?
解决方案
amq.gen-*
当您尝试声明具有空白名称的队列时,将生成具有随机名称的队列。这里的问题是您将空白值作为队列名称传递。将相同的内容更改为以下内容。
channel.assertQueue('demo-queue', { durable: true });
有关详细信息,请参阅https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html
推荐阅读
- jenkins - 使用 Openshift 实现 Jmeter/taurus
- android - 片段可以托管导航图吗?
- swagger - Springfox swagger ui 对 java 7 的支持
- flutter - 颤振构建apk仅更新更改
- mongodb - 如何减少现有 mongoID 的长度?
- javascript - TypeError: jquery__WEBPACK_IMPORTED_MODULE_7___default(...)(...).daterangepicker 在使用 jquery 和 react js 时不是一个函数
- react-native - 在不属于本机底部选项卡的屏幕中显示导航底部栏
- react-native - 向组件添加边距会更改屏幕布局 react-native
- css - SVG路径旋转动画
- java - Spring Data 未更新最新数据