0

我有一个类似于camel-file-consumer-template-threads-remaining-alive 的问题。我有一个在 Tomcat 容器中运行的 webapp。我正在使用骆驼版本 2.10.4。在其中,我将该File组件用作轮询消费者。它的设置如下:

from("/myDir"+
     "?delete=true"+
     "&startingDirectoryMustExist=true"+
     "&scheduledExecutorService=#mySpringManagedExecutorService")

这运行正常,但当我尝试停止 Tomcat 时,我收到以下消息:

SEVERE: The web application [/myapp] appears to have started a thread
     named [MyExecuteService-0] but has failed to stop it. This is very likely to
     create a memory leak.

调用 shutdown.sh 脚本后,我调用ps -ef | grep tomcat并且进程仍在运行。如果我的应用程序未加载,或者我没有在我的应用程序中加载此路由,则 tomcat 将正确停止。

4

1 回答 1

0

仅供参考,因此解决方案已发布在 Nabble 上。这是我需要在 Spring 中关闭 executor 服务。我通过向destory-method="shutdown"executor 服务添加一个来做到这一点。

仅供参考,我已经设置了执行程序服务,这样我就可以在单个上下文中为每个路由设置不同的线程名称。Spring 和 Camel 似乎都没有提供这种机制。

Nabble 线程在这里

于 2013-10-16T15:00:04.287 回答