onCompletion()の集約定義を含むルートでブロックを実行しようとしていますcompletionTimeout。ログエントリの前onCompletionからログエントリを取得するため、ルートが実際に完了する前に呼び出されるようです。OnCompletionAggregateTimeoutChecker
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