Rabbitmq node.js amqplib client Исключение PRECONDITION-FAILED - PullRequest
0 голосов
/ 28 января 2020

Я пытался 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'"

1 Ответ

0 голосов
/ 28 января 2020

Хотя исключение assertQueue все еще существует, но я обнаружил, что мне не нужно запускать assertqueue перед использованием ... поэтому сейчас я просто прокомментировал вызов assertQueue. и потребление работает.

Я не знаю, почему все примеры ameplib запускают assertQueue раньше всего?!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...