Rabbit MQ 自定义监听器容器(Listener Container)的启动与停止
项目中会遇到,MQ队列的监听是在某一前提条件准备好的情况下才启动,比如MQ接收到一系列数据,这些数据的保存依赖于另外一个MQ消息的一些配置接收之后才能完成。指定属性autoStartup为false,并启动对应的listener id@RabbitHandler@RabbitListener(queues = "Message", autoStartup= "fals
·
项目中会遇到,MQ队列的监听是在某一前提条件准备好的情况下才启动,比如MQ接收到一系列数据,这些数据的保存依赖于另外一个MQ消息的一些配置接收之后才能完成。
指定属性autoStartup为false,并启动对应的listener id
@RabbitHandler
@RabbitListener(queues = "Message", autoStartup= "false", id = "Message")
public void process(String body) {
}
根据listener ID获取对应容器,进行设置 stop/start
@Resource
private RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry;
MessageListenerContainer container = rabbitListenerEndpointRegistry.getListenerContainer("Message");
if(!container.isRunning()){
container.start();
log.info("started container");
}
更多推荐
已为社区贡献2条内容
所有评论(0)