任何人都可以在Mule中给我一个完整的JMS异步实现示例吗?

时间:2013-09-11 19:53:33

标签: asynchronous jms mule

我一直在搜索很多,是的,我看到了一些实现,但我仍然没有得到客户端如何异步使用这些响应,有人可以解释我或给我一个例子吗?

我现在唯一想到的是,一个小流程使用单向交换模式发送请求,以指定它将是异步的。好的,那又怎样?我的意思是,一旦它在队列中。作为客户,我如何在一段时间后收到我的消息?据我所知,correlationID发生在这里,也许是correlationGroups,但我该如何实现呢?我还不太清楚。

这是我为测试异步消息传递所做的代码,现在它将消息传递给队列,并保留在那里......现在,它需要以他想要的方式从同一个客户端以某种方式消费。我怎样才能做到这一点?

<jms:activemq-connector name="Active_MQ" specification="1.1" brokerURL="tcp://localhost:61616" validateConnections="false" doc:name="Active MQ">
    <reconnect frequency="5000"/>
</jms:activemq-connector>
<flow name="jms-amq-async-producerFlow1" doc:name="jms-amq-async-producerFlow1">
    <http:inbound-endpoint exchange-pattern="one-way" host="localhost" port="8081" path="asyncjms" doc:name="HTTP"/>
    <set-payload value="#['setting a new payload ']" doc:name="Set Payload"/>
    <jms:outbound-endpoint queue="AsyncQueueTest" doc:name="JMS" connector-ref="Active_MQ" disableTemporaryReplyToDestinations="true"/>
</flow>

提前致谢。

1 个答案:

答案 0 :(得分:2)

要按需消费,请使用:

muleClient.request('jms://AsyncQueueTest?connector=Active_MQ', aTimeOut) 

您应该能够将JMS选择器作为额外的查询参数传递,例如:&selector=JMSMessageId%3D12456