EasyNetQ - EasyNetQ.Топология.Очередь

Может кто-нибудь объяснить использование параметра isExclusive конструктора для типа EasyNetQ.Topology.Queue.

Примечание. Этот тип необходимо создать для удаления очереди с помощью Advanced API.


person Babu James    schedule 17.02.2014    source источник


Ответы (1)


Из документов AMQP.

«Исключительные очереди могут быть доступны только текущему соединению и удаляются, когда это соединение закрывается. Пассивное объявление эксклюзивной очереди другими соединениями не допускается».

Перед удалением рекомендуется убедиться, что очередь существует. Выполнение пассивного объявления (которое не создаст очередь, если она не существует) вернет экземпляр IQueue, который затем можно использовать для его удаления, и вам не нужно беспокоиться о параметре isExclusive:

// may throw if queue doesn't exist
var queue = advancedBus.QueueDeclare("my.queue.name", passive = true);
advancedBus.QueueDelete(queue);

Как в сторону. Параметр isExclusive IQueue не используется в методе IAdvancedBus.Delete(..), поэтому вы можете спокойно его игнорировать (с оговоркой, что это может измениться в будущих версиях).

person Mike Hadlow    schedule 17.02.2014