1

RouteBuilder の外でルートを開始および停止できるようにする必要があります...そのため、外部サービスを監視し、ルートのオンとオフを切り替えるクラスがあります。基本的に、ルートが新しいリクエストの消費を停止し、現在進行中のリクエストを処理することを望んでいます。

したがって、サービスのオンとオフを切り替えるx秒ごとに実行されるスケジュールされたタスクがあります。しかし、ルートを停止して開始すると、スレッドがリークすることがわかりました。

基本コード:

 for(int iCount=0;iCount<10;iCount++) {
   camelContext.stopRoute(TEST_ROUTE);
   camelContext.startRoute(TEST_ROUTE);
 }

これにより、10 個の追加スレッドが作成されるようです。誰もこれに遭遇したことがありますか?

注: suspend/Resume の使用と RoutePolicy の使用を検討しました。しかし、Start/Stop ルートを使用しているときに Camel がスレッドをリークする理由を知りたいです。

ここで何か不足していますか?

4

2 に答える 2

0

この Camel JIRAは、報告された問題について説明しています。JIRAに相談するのが一番です。

于 2013-06-14T03:32:15.283 に答える
0

Camel がルートを停止すると、バックグラウンド スレッドを使用してグレースフル シャットダウンを制御します。これについては、Camel の Web サイトhttp://camel.apache.org/graceful-shutdown.htmlで読むことができます。

また、SO について質問する場合は、詳細を提供してください。たとえば、表示されている 10 個のスレッドは何ですか? また、使用しているCamelのバージョンなど。開始/停止するルートのコードなど。

于 2013-02-25T17:55:22.787 に答える