tomcat之quartz : Memory Leak
arxive
阅读:17
2024-12-31 21:38:35
评论:0
我正在使用 Quartz 每小时运行一项工作。 servlet 在 Tomcat 上运行,我使用 ServletConextListener 来监听上下文何时被破坏。
当我关闭 tomcat 时,我收到消息:
“似乎已经启动了一个名为 [MyScheduler_Worker-1] 的线程,但未能阻止它”。
但后来我看到这个消息:
“[调试] 9 月 28 日 11:45:26.671 AM MyScheduler_Worker-1 [org.quartz.simpl.SimpleThreadPool]
WorkerThread 已关闭。”
那么假设由于这个线程而没有内存泄漏是否安全?
这是我的日志的外观:
{SEVERE: The web application [/*************] appears to have started a thread
named [MyScheduler_Worker-1] but has failed to stop it. This is very likely to c
reate a memory leak.
Sep 28, 2011 11:45:26 AM org.apache.catalina.loader.WebappClassLoader clearRefer
encesThreads
SEVERE: The web application [/*************] appears to have started a thread
named [MyScheduler_Worker-2] but has failed to stop it. This is very likely to c
reate a memory leak.
Sep 28, 2011 11:45:26 AM org.apache.catalina.loader.WebappClassLoader clearRefer
encesThreads
SEVERE: The web application [/*************] appears to have started a thread
named [MyScheduler_Worker-3] but has failed to stop it. This is very likely to c
reate a memory leak.
[DEBUG] 28 Sep 11:45:26.671 AM MyScheduler_Worker-2 [org.quartz.simpl.SimpleThre
adPool]
WorkerThread is shut down.
[DEBUG] 28 Sep 11:45:26.671 AM MyScheduler_Worker-1 [org.quartz.simpl.SimpleThre
adPool]
WorkerThread is shut down.
[DEBUG] 28 Sep 11:45:26.671 AM MyScheduler_Worker-3 [org.quartz.simpl.SimpleThre
adPool]
WorkerThread is shut down.
请您参考如下方法:
我知道这是一个旧线程,但以防其他人正在寻找它。
我们一直在获取线程的警告,直到我们在 ServletContextListener.shutDown() 方法中添加了关闭 Quartz 调度程序的代码。
要关闭调度程序:
quartzScheduler.shutdown();
int ct = 0;
// Try waiting for the scheduler to shutdown. Only wait 30 seconds.
while(ct < 30) {
ct++;
// Sleep for a second so the quartz worker threads die. This
// suppresses a warning from Tomcat during shutdown.
Thread.sleep(1000);
if (quartzScheduler.isShutdown()) {
break;
}
}
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。