最近项目需求利用消息中间件进行处理消息,使用的是springmvc的框架,在tomcat环境下启动这个web项目。
预期:启动项目的同时将rocketmq的消费者启动,可以对队列中的消息进行处理。所以采用spring init-method
方法,在项目启动时通过初始方法启动消费者。
问题:由于是消费者采用长轮询的方式,导致init-method方法一起无法启动完成,导致整个项目无法启动。
解决方案:给长轮询设置一个开关键,启动项目时默认关闭,不启动长轮询,项目自然就启动了。对外部暴露两个接口
用于对开关键进行操作,项目启动后开启开关,启动消费者端,进行队列消息处理。