在java spring boot

时间:2018-04-10 17:04:13

标签: java spring-boot rabbitmq spring-rabbitmq

在使用者或侦听器中发生异常时,暂停消息消耗的优雅方法是什么,因此消息可以重新排队。侦听器进程正在使用队列中的消息并调用不同的API。现在,如果API不可用,我们不想使用队列中的消息。有没有办法在有限的时间内停止从队列中消费消息,并在API可用时再次返回。

任何有关如何完成此操作的示例代码段也会有所帮助。

1 个答案:

答案 0 :(得分:0)

在提出这样的问题时,通常最好显示一下您的配置片段,以便我们根据您使用框架的方式进行适当的回答。

您只需在侦听器容器bean上调用stop()(和start())。

如果您使用的是@RabbitListener,则容器不是bean,但可以通过RabbitListenerEndpointRegistry bean获得。

在注册表上调用stop()会停止所有容器。

或者,您可以致电registry.getListenerContainer(id).stop(),其中id@RabbitListener的{​​{1}}财产的价值。