问题描述
我可以使用具有completionSize和completionTimeout的聚合器,如下所示:
from("direct:aggregate")
.routeId("aggregate")
.aggregate(constant(true),new JSONAggregator())
.completionSize(500)
.completionTimeout(3000)
.convertBodyTo(String.class)
.log("${body}")
.end();
但是,当我将aggregationStrategy与拆分器结合使用时,我没有得到这些选项。如何使用拆分器实现聚合器选项?
解决方法
您不能在Split EIP中使用这些选项。 拆分器与聚合策略相结合,可以简单地重新聚合之前已拆分的输入消息的所有部分。
示例:用5000行分割一条消息,转换每一行,然后根据策略重新汇总这些行。
由于聚集大小是由输入消息定义的,因此不能使用任何其他聚合完成选项。
但是,您可以做的是使用不带聚合策略的拆分EIP,随后在处理过程中使用独立的Aggregate EIP。然后,您可以根据需要配置聚合器。