2016-07-16 4 views
-1

完了サイズとそれに続くタイムアウトによってトリガーされたすべての集約された交換が処理された後にonCompletionを実行します。しかし、完了サイズがトリガされた直後に、タイムアウト基準によってトリガされるのを待っている交換機の一部が発生します。Apache CamelアグリゲーターとonCompletionの組み合わせ

+0

あなたが何を求めているのかはっきりしません。問題を再現し、何が起こるかを説明するサンプルコードをいくつか用意してください。 –

+0

複数の完了条件が指定されており、完了条件が1つでも満たされると、集約された出力メッセージがトリガされますか?代わりに、両方の完了条件が満たされた場合にトリガーします。そうですか? –

+0

私の説明がコメントには大きすぎるので、私は答えとしてそれを行いました – Eric

答えて

0

Iは .onCompletion((fromEndPoint)から

として設定されたルートを持っている) .doSomething() .split()//各行 .streaming() .parallelProcessing() .unmarshal ().bindy .aggregate() .completionSize(100) .completionTimeout(5000) .TO(toEndpoint)スプリットは405本のライン、凝集の最初の4組で行った場合

仮定交換は400回線(交換)を完了するエンドポイントに行きます。そして、それはすぐにonCompletionをトリガーします。しかし、completionTimeout基準が満たされたときにトリガーされる集約されたエクスチェンジはまだ5つあります。 5つの交換機がtoエンドポイントにルーティングされた後、onCompletionがトリガーされませんでした。

ここで私の質問は、オンコンプリーションが各交換ごとに、またはすべての後にトリガーされるべきです。

注:ここでのエンドポイントのマイファイルはファイルです。

関連する問題