2017-01-11 3 views
0

キャメルバージョンへのマルチキャストおよび早期の返事は、私は次のルートを持っている2.18.1キャメル休憩DSL HTTPクライアント

ですクライアントに返信する前に下記の を入力してください。

rest("/api") 
    .post("/commands/{command}").to("direct:commands") 

2:2つのエンドポイントlongRunningProcesshortRunningProcessWhichMustSendRespondToHttpClientにルーティングするマルチキャストコマンド。

from("direct:commands") 
    .multicast() 
     .to("direct:longRunningProces") 
     .to("direct:shortRunningProcessWhichMustSendRespondToHttpClient"); 

私はHTTPクライアントにshortRunningProcessWhichMustSendRespondToHttpClientルートからの応答を送信するにはどうすればよいですか?

答えて

0

マルチキャストメインスレッドを使用しているため、応答を待っています。 github

+0

がそれに追加する助け –

+0

いただきありがとうございます、ここでこの

from("direct:commands") .wireTap("direct:longRunningProces") //<<- seperate thread to process this route .to("direct:shortRunningProcessWhichMustSendRespondToHttpClient"); 

よう

使用盗聴

http://camel.apache.org/wire-tap.html

ルート外観は完全なコードで、設計の観点の盗聴をする必要があります分析するためのコンポーネント間のメッセージを傍受する/ debu gging目的。 (例:ペイロードを別のフローに送信して、監査目的でデータベースにログインすることができます)。長時間実行しているプロセスを別のスレッド非同期の方法で実行する場合は、ダイレクトを「SEDA」と置き換えてください。 –

+0

@GnanaGuruこのような意味ですか? 'から( "ダイレクト:コマンド") .multicast() .TO( "SEDA:longRunningProces") .TO( "ダイレクト:shortRunningProcessWhichMustSendRespondToHttpClient");あなたが言及したように使用できる' –