如何启动,停止和重新连接spring rabbitmq监听器容器及其连接?

时间:2016-10-13 07:57:18

标签: spring-boot spring-amqp spring-rabbit spring-rabbitmq

我有一个互联网连接,其中出口网关会定期更改。在发生这种情况之前的几秒钟,我正在向我的spring应用程序收到一个事件或回调通知。我想停止我的兔子消费者和连接,然后在几秒钟后重新连接(当我的网络连接恢复时)。

我正在使用spring amqp的基于注释的方法,但我也可以切换到另一种实现方式。

我知道spring-amqp正在为我重新连接,但我想自己做这件事来控制它。 我如何以编程方式彻底清除所有消费者(RabbitListeners)以及与rabbitmq代理的干净连接以及所有消费者的干净连接和启动?如果消费者能够重新创建,那就好了。如果这是不可能的,我将不得不重新初始化一些对象属性。

1 个答案:

答案 0 :(得分:5)

您可以@Autowire RabbitListenerEndpointRegistry并致电stop()停止所有@RabbitListener个实例。

然后在连接工厂上调用resetConnection()以关闭连接。

重新启动注册表将导致重新建立​​连接。