Java completionTimeOut或TimeoutAwareAggregationStrategy超时
我正在使用多播将传入消息发送到两个不同的端点并聚合响应。我希望获得响应,即使其中一个端点响应超时。 哪种方法可以使用“超时”或completionTimeout。? 我正在使用并行处理来处理消息Java completionTimeOut或TimeoutAwareAggregationStrategy超时,java,apache-camel,Java,Apache Camel,我正在使用多播将传入消息发送到两个不同的端点并聚合响应。我希望获得响应,即使其中一个端点响应超时。 哪种方法可以使用“超时”或completionTimeout。? 我正在使用并行处理来处理消息 .multicast() .to("direct:A","direct:B") .parallelProcessing() //.timeout(1000L) .aggregationStrategy(new MyAggregationStrategy()) //.completionTim
.multicast()
.to("direct:A","direct:B")
.parallelProcessing()
//.timeout(1000L)
.aggregationStrategy(new MyAggregationStrategy())
//.completionTimeout(2000L)
.end()
在这种情况下,我如何使用TimeOutawareggregationStrategy
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;
}
}}
使用
timeout
,查看此单元测试的示例: