如何使用带有split-aggregate的Aggregator选项例如completionSize,completionTimeout

问题描述

我可以使用具有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。然后,您可以根据需要配置聚合器。