ルートを作成する必要があります。このルートは、反復間のわずかな遅延で定期的にプロセスを呼び出します。
ループのドキュメントを見ると:
ループはメッセージを何回も処理することを可能にします。おそらく反復ごとに異なる方法で処理します。主にテスト中に役立ちます。
したがって、無限ループを実行する必要があるため(CamelLoopSize
明示的に指定せずに)、これは役に立ちません。
私の2番目のアイデアは、一種の「再帰」を使用することでした:
from("direct:updateLoop").routeId("updateLoop")
.process(someProcess)
...
.filter(someFilter) // Can be used to stop the workflow
.delay(18000000) // Wait 5 hours and start again
.to("direct:updateLoop")
これは数日間はうまく機能しますが、約 600 回の反復の後、これは失敗します。StackOverflowException
プロセスを無限ループで実行するより良い方法はありますか?