我一直在搜索很多,是的,我看到了一些实现,但我仍然没有得到客户端如何异步使用这些响应,有人可以解释我或给我一个例子吗?
我现在唯一想到的是,一个小流程使用单向交换模式发送请求,以指定它将是异步的。好的,那又怎样?我的意思是,一旦它在队列中。作为客户,我如何在一段时间后收到我的消息?据我所知,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>
提前致谢。
答案 0 :(得分:2)
要按需消费,请使用:
muleClient.request('jms://AsyncQueueTest?connector=Active_MQ', aTimeOut)
您应该能够将JMS选择器作为额外的查询参数传递,例如:&selector=JMSMessageId%3D12456