Rabbitmq node.js amqplib客户端PRECONDITION-FAILED异常

问题描述 投票:0回答:1

我尝试过assertQueue,在这种情况下我不知道这意味着什么,有很多选择。但每次我都遇到同样的例外!

我要做的就是听一些队列并开始使用这些队列中的消息!我可以这样做而不必担心队列是否持久?

var amqp = require('amqplib/callback_api');
var c_con, c_ch;
// *** code omitted  ***
...


var AMQPStats = require('amqp-stats');
var stats = new AMQPStats({
  // *** code omitted  ***
...
});

stats.queues(function(err, res, data){
    if (err) { 
      console.log(err); 
    } else {
      console.log('data received for ', data.length, ' queue.');

        data.forEach(function(queue){

            // c_ch.assertQueue(queue.name, {durable: queue.durable, auto_delete: queue.auto_delete});

            c_ch.assertQueue(queue.name);

            c_ch.consume(queue.name, function(msg) {
            // *** code omitted  ***
            ...
            });
        });

    }

});
Channel closed by server: 406 (PRECONDITION-FAILED) with message "PRECONDITION_FAILED 
- inequivalent arg 'durable' for queue 'Servicex.0cc2f2711d7d42f1ae1c64e4e84e6092_handler' in vhost '/':
 received 'true' but current is 'false'"
node.js rabbitmq
1个回答
0
投票

尽管assertQueue的例外仍然存在,但是我发现在使用..之前不需要运行assertqueue,所以现在我只评论assertQueue调用。并且消费正在起作用。

我不知道为什么ameplib的所有示例都先运行assertQueue?!

© www.soinside.com 2019 - 2024. All rights reserved.