我正在使用 Camel Multicast EIP,并且我的聚合策略指定如下 -
<multicast strategyRef="myAggregationStrategy" parallelProcessing="true">
<to uri="direct1"/>
<to uri="direct2"/>
</multicast>
如何在 XML DSL 中为我的聚合策略指定correlationExpression、completionTimeout?
我正在使用 Camel Multicast EIP,并且我的聚合策略指定如下 -
<multicast strategyRef="myAggregationStrategy" parallelProcessing="true">
<to uri="direct1"/>
<to uri="direct2"/>
</multicast>
如何在 XML DSL 中为我的聚合策略指定correlationExpression、completionTimeout?
多播不是聚合 EIP 模式。多播的聚合策略是用于聚合来自多播目的地的响应,所以这里有 2 个目的地,因此有 2 个预期的消息要聚合。
您可以指定一个超时选项,以防多播消息之一需要很长时间才能处理。
您不需要相关标识符,因为在多播之后指定的聚合器是指多播端点产生的消息。我们可以说存在隐含的“多播”相关标识符。
关于多播超时 - 多播 DSL 允许您指定多播应等待多长时间,直到所有消息都发送到端点并得到处理:
from("direct:start")
.multicast(new MyAggregationStrategy())
.parallelProcessing().timeout(500).to("direct:a", "direct:b", "direct:c")
.end()
.to("mock:result");