JmsTemplate同步接收

时间:2013-07-16 05:38:55

标签: spring-jms

如何同步jmstemplate receive()方法?发件人向代理发送消息,另一方面,消费者从代理队列或主题消费消息。对于receive,它将是一些轮询线程,等待代理上的某些数据。如何保持同步?

1 个答案:

答案 0 :(得分:3)

JmsTemplate使用场景后面的JMS API,尤其是MessageConsumer。该服务可以尝试在不等待(Message)的情况下尝试接收receiveNoWait,也可以等待一段可配置的时间(receive(long timeout))。当以超时0调用它时,接收方法将阻塞,直到消息到达。 JmsTemplate中没有任何内容可以处理所有这些内容(即由客户端代理实现提供)。

更常规的接收消息的方法是使用侦听器容器。使用Spring,DefaultMessageListenerContainer允许您使用线程轮询来处理传入的消息。有关详细信息,请查看jms documentation of the Spring framework