背景:
需要消费上游消息,上游使用队列为IBM MQ,使用JmsListener监听,启动项目报错2035授权问题,上游提供demo可以发送消费成功,因开发进度使用demo,while(true)循环监听
问题:
有多个队列,写多个ApplicationRunner消费,但是只执行了一个,后续不执行
解决:
不再run方法里面直接死循环,这样会卡死主线程,main方法一直不返回
在run里面新起线程循环拉取队列消息即可
原因:
springboot启动,执行方法callRunners
org.springframework.boot.SpringApplication#callRunners
需要一个方法返回然后才会执行下一个,但是在方法中死循环监听消息队列,所以没有返回,所以不执行下一个