jmstemplate接收()方法是如何同步的?发送者将消息发送到代理,而另一方面,消费者消费来自代理队列或主题的消息。对于接收,它将是一些轮询线程在代理上等待一些数据。那么如何维护同步呢?
发布于 2014-04-09 19:13:59
JmsTemplate在后台使用JMS,尤其是MessageConsumer。该服务可以尝试在不等待的情况下接收Message (receiveNoWait),也可以等待一段可配置的时间(receive(long timeout))。当在超时为0的情况下调用接收方法时,它会一直阻塞,直到有消息到达。JmsTemplate中没有处理所有这些的东西(也就是说,它是由客户端代理实现提供的)。
接收消息的一种更常规的方法是使用侦听器容器。使用Spring,DefaultMessageListenerContainer允许您使用线程轮询来处理传入的消息。有关更多信息,请查看jms documentation of the Spring framework。
https://stackoverflow.com/questions/17668784
复制相似问题