2016-07-16 62 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應該觸發每次交換或一次。

注意: - 我從這裏的終點是一個文件。