Может ли txAMQP отменить привязку в RabbitMQ? - PullRequest
0 голосов
/ 12 февраля 2010

Я хочу удалить привязки в RabbitMQ без удаления связанной очереди. Я использую txAMQP со спецификацией 0.8 AMQP; Похоже, это единственная версия, которую поддерживает RabbitMQ, но у нее нет метода unbind.

Как ни странно, просмотр исходного кода показывает, что RabbitMQ поддерживает unbind, что оставляет меня в замешательстве.

Могу ли я отменить привязку с этой комбинацией клиента и сервера? Если да, то как?

1 Ответ

2 голосов
/ 13 февраля 2010

Как вы заметили, RabbitMQ в некоторых версиях теперь поддерживает метод расширения Queue.Unbind, определение которого взято из спецификации 0-9, но не все клиентские библиотеки AMQP были расширены одинаково.

Чтобы это работало с txAMQP, вам нужно взять определения XML методов Queue.Unbind и Queue.UnbindOk из спецификации 0-9, вставить их в файл спецификации 0-8, используемый txAMQP, и перезапустить ваше приложение. Теперь должен быть доступен метод Queue.Unbind, если я правильно понял, как работает txAMQP.

Вот соответствующие разделы XML из спецификации BSD 0-9-1, лицензированной BSD:

<method name="unbind" synchronous="1" index="50">
  <chassis name="server" implement="MUST"/>
  <response name="unbind-ok"/>
  <field name="reserved-1" type="short" reserved="1"/>
  <field name="queue" domain="queue-name"/>
  <field name="exchange" domain="exchange-name"/>
  <field name="routing-key" domain="shortstr"/>
  <field name="arguments" domain="table"/>
</method>
<method name="unbind-ok" synchronous="1" index="51">
  <chassis name="client" implement="MUST"/>
</method>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...