How to stop consuming messages with @RabbitListene

2019-04-01 00:57发布

问题:

When I use MessageListenerAdapter to handle message, I could call SimpleMessageListenerContainer.stop() to stop consume from the queue. But after I change to use @RabbitListener to listen, I can't find a method like this. I tried CachingConnectionFactory.stop() but doesn't work. Could anyone help? Thank you very much.

回答1:

  1. Give the @RabbitListener an id.
  2. Get a reference to the listener endpoint registry bean by autowiring etc.
  3. Calling stop() on the registry will stop all containers.
  4. Call getListenerContainer(id).stop() to stop an individual container.