Вопрос:

amqplib - как безопасно проверить, существует ли очередь

node.js rabbitmq amqp

752 просмотра

1 ответ

716 Репутация автора

Я использую библиотеку amqplib для nodejs для работы с RabbitMQ. Я пытаюсь проверить, существует ли очередь с помощью функции checkQueue:

mychannel.checkQueue('xxx', function (err, ok) { 
    console.log(err);
    console.log(ok)
});

Но это не только выдает ошибку, но и закрывает канал. Как я могу безопасно проверить, существует ли очередь?

Автор: Mister_L Источник Размещён: 22.08.2016 08:41

Ответы (1)


0 плюса

1184 Репутация автора

Вы не можете, не рискуя уничтожить канал. Обходной путь - создать временный канал, который вы можете использовать для проверки.

Комментарий от разработчика amqp.node: ( https://github.com/squaremo/amqp.node/issues/280 )

Поведение checkQueue определяется протоколом, но его можно обойти. Одна тактика заключается в создании «жертвенного» дополнительного канала, с помощью которого можно проверить, существует ли очередь. Получив ответ, вы можете выбросить дополнительный канал или оставить его для дальнейших тестов.

Автор: Mikko Размещён: 31.03.2017 12:01
Вопросы из категории :
32x32