2017-07-17 15 views
0

私はマルチキャストを使用して、2つの異なるエンドポイントに受信メッセージを送信し、応答を集約します。エンドポイント応答のタイムアウトが発生した場合でも、応答を取得します。 どのような方法で私は "タイムアウト"またはcompletionTimeoutを使用することができますか? 私はメッセージを処理するために並列処理を使用しています。completionTimeOutまたはTimeoutAwareAggregationStrategyのタイムアウト

.multicast() 
.to("direct:A","direct:B") 
.parallelProcessing() 
//.timeout(1000L) 
.aggregationStrategy(new MyAggregationStrategy()) 
//.completionTimeout(2000L) 
.end() 

この場合、どのようにTimeoutAwareAggregationStrategyを使用できますか。

public class MyAggregationStrategy implements TimeoutAwareAggregationStrategy { 
@Override 
public Exchange aggregate(Exchange newExchange, Exchange originalExchange) { 
    if(newExchange==null){ 
     return originalExchange; 
    } 
    else { 
     ExchangeHelper.copyResults(originalExchange, newExchange); 
     return originalExchange; 
    } 
}} 

答えて

関連する問題