2012-05-25 49 views
0

我米用骆驼组播EIP,我有我的聚合策略指定为在下面提供相关表达骆驼的组播EIP - 如何指定correlationExpression,completionTimeout为如何为指定的聚合策略

<multicast strategyRef="myAggregationStrategy" parallelProcessing="true"> 
    <to uri="direct1"/> 
    <to uri="direct2"/> 
</multicast> 

我XML DSL中的聚合策略?

回答

0

组播不是聚合的EIP模式。多播上的聚合策略用于聚合来自多播目的地的响应,因此这里有2个目的地,因此有2个预期消息需要聚合。

虽然您可以指定一个超时选项,以防其中一个多点传送消息需要很长时间才能处理。

+0

谢谢!因此,据我了解 - 在聚合多播中收到的响应时,不需要correlationExpression(与Splitter聚合策略非常相似)。 我只是想确保在我的 [用例](http://stackoverflow.com/questions/10610820/apache-camel-to-aggregate-multiple-rest-service-responses) 响应聚合是否一致如果多个请求在同一时间。 – Rishi

+0

是的,它像分离器上的聚合策略。 –

0

您不需要关联标识符,因为在多播之后指定的聚合器指的是由多播端点生成的消息。我们可以说有隐含的“多播”相关标识符。

关于组播超时 - 组播DSL允许你指定应该多播多长时间等到所有邮件都发送到端点和处理:

from("direct:start") 
.multicast(new MyAggregationStrategy()) 
    .parallelProcessing().timeout(500).to("direct:a", "direct:b", "direct:c") 
.end() 
.to("mock:result"); 
+0

感谢您的投光! – Rishi