2016-07-16 59 views
-1

我希望onCompletion在处理完成大小和超时都触发的所有聚合交换之后发生。但是,它会在完成大小触发后立即发生,其中一些交换等待由超时标准触发。Apache Camel聚合器与onCompletion的组合

+0

我不清楚你在问什么。您能否提供一些示例代码来重现问题并解释您期望发生的事情。 –

+0

你是说你已经指定了多个完成条件,并且聚合输出消息在满足完成条件时被触发。相反,如果满足两个完成条件,则需要触发它。是对的吗? –

+0

由于我的澄清太大而无法发表评论,因此我将其作为答案 – Eric

回答

0

我有路线配置为

从(fromEndPoint) .onCompletion() .doSomething() .split()//每一行 .streaming() .parallelProcessing() .unmarshal ().bindy .aggregate() .completionSize(100) .completionTimeout(5000)。为了 (toEndpoint)

假设如果分裂已于405线来完成,第一4套聚集交易所去到端点完成400线(交易所)。然后,它立即触发onCompletion。但是仍然有5个更多的汇总交易,当满足completionTimeout标准时会被触发。它在5次交换路由到端点后没有触发onCompletion。

我的问题是,onCompletion应该触发每次交换或一次。

注意: - 我从这里的终点是一个文件。