バインドされたキューを削除せずに、RabbitMQのバインドを削除したい。0.8AMQP仕様のtxAMQPを使用しています。RabbitMQがサポートするバージョンはこれだけのようですが、unbind
メソッドはありません。
奇妙なことに、ソースコードをよく読んでみると、RabbitMQがunbindをサポートしていることがわかり、かなり混乱しています。
このクライアントとサーバーの組み合わせでバインドを解除できますか?もしそうなら、どのように?
バインドされたキューを削除せずに、RabbitMQのバインドを削除したい。0.8AMQP仕様のtxAMQPを使用しています。RabbitMQがサポートするバージョンはこれだけのようですが、unbind
メソッドはありません。
奇妙なことに、ソースコードをよく読んでみると、RabbitMQがunbindをサポートしていることがわかり、かなり混乱しています。
このクライアントとサーバーの組み合わせでバインドを解除できますか?もしそうなら、どのように?
お気づきのように、RabbitMQはいくつかのバージョンで拡張Queue.Unbindメソッドをサポートしており、定義は0〜9の仕様から引き上げられていますが、すべてのAMQPクライアントライブラリが同じように拡張されているわけではありません。
これをtxAMQPで機能させるには、Queue.UnbindメソッドとQueue.UnbindOkメソッドのXML定義を0〜9の仕様から取得し、txAMQPが使用する0〜8の仕様ファイルに貼り付けて、アプリケーションを再起動する必要があります。txAMQPがどのように機能するかを正しく理解していれば、Queue.Unbindメソッドを使用できるはずです。
BSDライセンスの0-9-1仕様からの関連するXMLスタンザは次のとおりです。
<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>