У меня есть требование, когда мне нужно асинхронно писать в очередь в activemq. Я использую Spring Jms для этого. Это проводка в моем файле контекста весны
<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)
}
Но вышеописанное работает синхронно, а не асинхронно. Есть ли что-нибудь, что мне нужно добавить сюда, чтобы сделать процесс асинхронным (я имею в виду, что приложение «А» записывает в очередь. Оно должно писать в очередь и забывать, а не ждать, пока приложение «Б» заберет его из очереди и обрабатывает его.)