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