2016-12-26 10 views
-2

システム内のコンポーネントのメッセージバスとしてRabbitMQを使用してお互いに通信しています。何らかの理由で、出版社がキュー/交換機にメッセージをしばらく送信してから後で再開することをやめさせたいと思っています。それを実現させる方法を提案してもらえますか?私はrabbitMQ plugginsを書くことを読んできましたが、Erlangについてはほとんど分かりませんが、私が期待していることができるかどうかはわかりません。キューがRabbitMQのメッセージを受信できないようにする

おかげで、 マイケル

+0

達成しようとしているもの、設定内容などを追加してください。プロデューサコードを送信しないようにするか、Derickがキューバインディングを削除できるようにすることができます。適切な答えを得るためには、より多くの情報を提供する必要があります。 –

答えて

0

私は出版社からの送信を中止したいと思いますエッセージをキュー/交換機にしばらくの間交換し、後で再開します。

メッセージを失うことに気にしない場合は、問題のキューの交換 - >キューバインディングを削除するだけで済みます。これにより、メッセージがキューにルーティングされなくなります。

中止したところでメッセージを受信することを再開する必要がある場合は、それを行うことはできません。メッセージが最初に発行されたときに、キューはメッセージを受信するか、受信しません。たとえば、メッセージ1、2、3、4および5をパブリッシュすると、メッセージ3がパブリッシュされた後、キューへのルーティングが「停止」されます。後でルーティングを再開し、同じキューでメッセージ4と5を受信したいとします。これは不可能です。

「再開」オプションが必要な場合は、コンシューマを停止してメッセージをキューに収集することをお勧めします。メッセージの処理を再度開始する必要があるときにコンシューマを再起動します。

関連する問題