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;
}
}}