onCompletion()
の集約定義を含むルートでブロックを実行しようとしていますcompletionTimeout
。ログエントリの前onCompletion
からログエントリを取得するため、ルートが実際に完了する前に呼び出されるようです。OnCompletion
AggregateTimeoutChecker
onComplete
集約タイムアウトを待機させるにはどうすればよいですか?
もちろん、completionTimeout よりも大きな遅延を onCompletion に追加することはできますが、それによってテストが大幅に遅くなります。
私のルートは次のようになります。
from(fileEndpoint)
.bean(externalLogger, "start")
.onCompletion()
.bean(externalLogger, "end") // <-- Gets called too early
.end()
.split().tokenize("\n")
.bean(MyBean.class)
.aggregate(header("CamelFileName"), ...)
.completionSize(size)
.completionTimeout(500)
.bean(AggregatesProcessor.class); // <-- some changes here don't arrive
// at onCompletion