我需要能够在 RouteBuilder 之外启动和停止路由......所以我有一个类来监视外部服务并打开和关闭路由。基本上我希望路由停止消费新请求并处理当前飞行中的请求。
所以我有一个计划任务,每 x 秒运行一次,它会打开和关闭服务。但我发现停止和启动路线会导致它泄漏线程。
基本代码:
for(int iCount=0;iCount<10;iCount++) {
camelContext.stopRoute(TEST_ROUTE);
camelContext.startRoute(TEST_ROUTE);
}
这似乎创建了 10 个额外的线程。有没有人遇到过这个?
注意:我考虑过使用挂起/恢复以及使用 RoutePolicy。但是我想知道为什么 Camel 在使用 Start/Stop 路由时会泄漏线程。
我在这里错过了什么吗?