Camel stopRoute startRoute泄漏线程

时间:2013-02-21 00:52:56

标签: apache-camel

我需要能够在RouteBuilder之外启动和停止路由...所以我有一个监控外部服务的类并打开和关闭路由。基本上我希望路由停止消耗新请求并处理当前的空中请求。

所以我有一个每x秒运行一次的计划任务,可以打开和关闭服务。但我发现停止和启动路线会导致它泄漏线程。

基本代码:

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

这似乎创建了10个额外的线程。有没有人遇到过这个?

注意:我考虑过使用suspend / Resume并使用RoutePolicy。但我想知道为什么Camel在使用Start / Stop路径时会泄漏线程。

我在这里遗漏了什么吗?

2 个答案:

答案 0 :(得分:0)

当Camel停止路线时,它使用后台线程来控制正常关闭,您可以在Camel网站上阅读http://camel.apache.org/graceful-shutdown.html

当您在SO上提出问题时,请提供更多详细信息,例如您看到的10个主题是什么?还有你使用的Camel版本等。还有你开始/停止等路线的代码。

答案 1 :(得分:0)

This Camel JIRA描述了您报告的问题。最好咨询JIRA。