2016-04-16 12 views
1

キャメルのサーブレットと桟橋の両方のエンドポイントは、リクエストメッセージを交換する(InOut)とアウトメッセージを期待しています。Camelサーブレットまたはjettyエンドポイントをfire-and-forgetファッションで呼び出す

したがって、私はこれらのエンドポイントにHTTPリクエストを送信すると、ルートのすべてのプロセッサが終了した後にのみ応答が返送されると仮定します。

これらのエンドポイントをFire-and-forget方式で呼び出すことができます。つまり、すべての処理が完了するのを待たずにルートをトリガーし、即時応答を返すことは可能ですか?

+0

この質問は基本的にhttp://stackoverflow.com/questions/11981900/camel-how-can-i-sendと同じように求めていますエンドツーエンドの非同期 – Ronald

答えて

0

を非同期に処理され、メッセージがキューになるとバックHTTPクライアントにACKできる非同期にそれを作るために。私はinOnlyタグを使用する場合、これが唯一の非同期に実行されたことに注意してください:

<route autoStartup="true" id="x-service"> 
    <from uri="servlet:/xService"/> 
    <inOnly uri="seda:x-service-execute-async" /> 
    <transform> 
     <constant>OK</constant> 
    </transform> 
</route> 

<route autoStartup="true" id="x-service-execute-async"> 
    <from uri="seda:x-service-execute-async"/> 
    ... 
</route> 
0

必ず、あなただけのこのルートが(など、またはSEDA)JMSキューにすべての要求を送信します...例えば...ルートに

をいくつかasynchronousステップ(EIPまたはコンポーネント)を配置する必要があります私は「SEDA」を使用終わりに...

from("http://localhost:9001/inbound") 
    .to("activemq:inboundQ"); 

from("activemq:inboundQ") 
    .to(...inbound processing...); 
関連する問題