轮询机制是否会引起DefaultMessageListenerContainer的问题

时间:2014-11-05 11:23:53

标签: spring-jms

DefaultMessageListener容器的文档为:

"Message listener container variant that uses plain JMS client API, specifically a loop of MessageConsumer.receive() calls"

正如Juergen在帖子http://forum.spring.io/forum/other-spring-related/remoting/24208-what-s-the-best-practice-for-using-jms-in-spring中所述,我可以理解这是值得推荐的方法。

但基本上害怕它所带来的拉动机制,因为一般认为事件驱动机制在资源使用和阻塞行为方面优于拉模型。

使用DefaultMessageListener时是否会出现任何问题或疑虑。

请告知

1 个答案:

答案 0 :(得分:1)

它确实成为事件驱动的;容器没有轮询服务器,它轮询客户端库以查看是否有任何新消息到达。它确实没有使用任何重要的资源。

如果您担心,可以增加接收超时;缺点是容器对stop()请求的响应性较低。