2016-08-27 10 views
0

私は、特定のイベントで交換機からrabbitmqコンシューマを切り離して、キュー内のメッセージの消費を停止してから同じコンシューマを交換し、メッセージを再び消費し始める。私はSpring-RabbitMQ 1.6を使用しています。交換機にrabbitmqコンシューマを切り離して再接続する

これまでのところ、私はインターネット上のいくつかのページを読んだ。 http://www.programcreek.com/java-api-examples/index.php?api=org.springframework.amqp.rabbit.core.RabbitAdmin

およびhttp://docs.spring.io/spring-amqp/docs/1.6.0.RC1/reference/htmlsingle/#idle-containersなどがありますが、それを正しく動作させる方法を正確に理解できませんでした。

答えて

1

container.stop()に電話してコンシューマを停止することができます。 start()が再起動します。

+0

ok。コンテナにアクセスする方法は?私は "RabbitListenerEndpointRegistry"の処分でこのクラスが必要になると思いますが、アクセスする方法を見つけることができませんでした。私はRabbitAdminとRabbitTemplateのBeanを私にアクセスできます。 –

+0

通常のSpringテクニック(コンストラクタのargやプロパティ、 '@ Autowire'、' context.getBean() 'など)を使ってレジストリへの参照を取得し、それを停止/開始することができます@ RabbitListener "id"を使ってレジストリから個々のコンテナを取得し、それらを停止/開始することができます。 [the documentation](http://docs.spring.io/spring-amqp//reference/html/_reference.html#_container_management)を参照してください。 –

+0

ありがとうございました。私はrabbitmqコンテキストxmlにいくつかの変更を行い、Collection beanを介してすべてのリスナーの参照を取得しました。 –

関連する問題