0

私はたくさん検索してきましたが、はい、いくつかの実装を見ましたが、クライアントがこれらの応答を非同期に消費する方法がまだわかりません。

今頭に浮かんだ唯一のことは、一方向交換パターンを使用してリクエストを送信し、非同期であることを指定する小さなフローです。よし、じゃあどうする?つまり、キューに入ったら。クライアントとして、一定時間後にメッセージを受け取るにはどうすればよいですか? 私が知る限り、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>

前もって感謝します。

4

1 に答える 1

2

オンデマンドで使用するには、次を使用します。

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

次のように、追加のクエリ パラメータとして JMS セレクタを渡すことができるはずです。&selector=JMSMessageId%3D12456

于 2013-09-12T19:23:23.250 に答える