具有parallelProcessing完成回调的Apache Camel聚合器

时间:2017-05-11 13:59:23

标签: apache-camel

我正在使用Apache Camel聚合器与 parallelProcessing 同时处理聚合交换:

from("direct:test")               
            .aggregate(constant(true), new GroupedMessageAggregationStrategy())
            .completionSize(10)
            .completionTimeout(3000)
            .parallelProcessing()
            .to("direct:test2")
            .log("Completed!") //executed for each aggregated exchange  
            .end();

我需要的是在处理所有聚合交换时获取回调并记录“已完成!”之后。

目前,(参见上面的日志声明) - 它正在为每个聚合交换执行。

提前感谢任何建议。

1 个答案:

答案 0 :(得分:1)

也许您需要记录“已完成!”在不同的路线。像这样:

from("direct:start")
        .split(body())
        .to("direct:test")
        .end()
        .log("Completed!");

from("direct:test")
        .aggregate(constant(true), new GroupedMessageAggregationStrategy())
        .completionSize(10)
        .completionTimeout(3000)
        .parallelProcessing()
        .to("direct:test2");

from("direct:test2")
        .log("do something");