RabbitMQ Durable Queue ACK не работает в узле

Я изучаю интеграцию RabbitMQ с Node и пишу POC для проверки подписки с длительной очередью.

Хотя я установил autoAck: true в consumer.js, но он все равно получает старые сообщения всякий раз, когда я выполняю этот файл js.

Могу ли я знать, почему мой consumer.js все еще получает старые сообщения из Queue, несмотря на признание истины?

В RabbitMQ я настроил следующее.

  • Обмен: rabbitmq.direct прямого типа
  • Очередь: data.queue
  • Прочный: правда
  • Обязательный ключ маршрутизации: информация

мой публиковать node.js

var amqp = require('amqplib/callback_api');

var jsonEventMsg = require('user.json');

amqp.connect('amqp://test:test123@ipnumber:port/', function(err, conn) 
    {
        conn.createChannel((err, ch) => 
        {
            const ex = "rabbitmq.direct";                       
            const severity = 'info';
            ch.assertExchange(ex, 'direct', {durable: true});
            ch.publish(ex, severity, new Buffer(JSON.stringify(jsonEventMsg)));
            console.log(" [x] Sent %s: '%s'", severity, JSON.stringify(jsonEventMsg));
        });

        setTimeout(
            function() 
            { 
                conn.close(); 
                process.exit(0) 
            }, 
            500
        );
    }
);

моя подписка node.js

var amqp = require('amqplib/callback_api');

amqp.connect('amqp://test:test123@ipnumber:port/', function(err, conn) 
{
    conn.createChannel((err, ch) => 
    {
        const ex = "direct.exchange";
        const queue = "data.queue";
        ch.assertExchange(ex, 'direct', {durable: true});
        ch.assertQueue(queue, { exclusive: false }, (err, q) => 
        {
            console.log("[*] Waiting for messages in %s. To exit press CTRL+C");
            ch.bindQueue(q.queue, ex, "info");
            ch.consume(q.queue, function(msg) 
            {
                console.log(" [x] %s: '%s'", msg.fields.routingKey, msg.content.toString());
            }, 
            {autoAck: true , exclusive: false }                     
            );
        });
    });
});

0 ответов

Другие вопросы по тегам