【发布时间】:2013-05-05 09:16:55
【问题描述】:
当我需要异步写入activemq中的队列时,我有一个要求。我正在使用 Spring Jms 来做到这一点。这是我的 spring 上下文文件中的接线
<bean id="amqProducerConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${activemq.broker}"/>
</bean>
<bean id="pooledProducerConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop" lazy-init="true">
<property name="connectionFactory" ref="amqProducerConnectionFactory" />
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="pooledProducerConnectionFactory" />
</bean>
在我的代码中……我愿意……
void sendMessage(JmsTemplate jmsTemplate, String message, String requestQueue) {
def messageCreator = { session ->
session.createTextMessage(message)
} as MessageCreator
jmsTemplate.send(requestQueue, messageCreator)
}
但上述内容似乎是同步工作的,而不是异步工作的。有什么我需要在这里添加的东西使进程异步(我的意思是,应用程序'A'写入队列。它应该写入队列并忘记,而不是等到应用程序'B'从队列中取出它并处理它。)
【问题讨论】:
-
这确实是异步工作的;是什么让您认为它会等待消费者?
-
这是评论,不是答案
标签: java spring asynchronous activemq spring-jms