jmstemplate的receive()方法是如何同步的?发送方将消息发送到代理,另一方面,消费者使用代理队列或主题中的消息。对于接收,它将是一些轮询线程等待代理上的一些数据。然后如何保持同步?
问问题
5231 次
1 回答
3
JmsTemplate
在幕后使用 JMS API,尤其是MessageConsumer
. 该服务可以尝试在Message
不等待的情况下接收 ( receiveNoWait
),也可以等待可配置的时间量 ( receive(long timeout)
)。当超时时间为 0 时,接收方法会阻塞,直到消息到达。没有任何东西JmsTemplate
可以处理所有这些(即它是由客户端代理实现提供的)。
接收消息的更常规方式是使用侦听器容器。使用 Spring,DefaultMessageListenerContainer
允许您使用线程轮询来处理传入消息。查看Spring 框架的 jms 文档以获取更多信息。
于 2014-04-09T11:13:59.260 回答