RouteBuilder の外でルートを開始および停止できるようにする必要があります...そのため、外部サービスを監視し、ルートのオンとオフを切り替えるクラスがあります。基本的に、ルートが新しいリクエストの消費を停止し、現在進行中のリクエストを処理することを望んでいます。
したがって、サービスのオンとオフを切り替えるx秒ごとに実行されるスケジュールされたタスクがあります。しかし、ルートを停止して開始すると、スレッドがリークすることがわかりました。
基本コード:
for(int iCount=0;iCount<10;iCount++) {
camelContext.stopRoute(TEST_ROUTE);
camelContext.startRoute(TEST_ROUTE);
}
これにより、10 個の追加スレッドが作成されるようです。誰もこれに遭遇したことがありますか?
注: suspend/Resume の使用と RoutePolicy の使用を検討しました。しかし、Start/Stop ルートを使用しているときに Camel がスレッドをリークする理由を知りたいです。
ここで何か不足していますか?