我每小时都在使用Quartz来完成一项工作。 servlet在Tomcat上运行,我正在使用ServletConextListener来监听上下文被破坏的时间。
当我关闭tomcat时,我收到消息:
“似乎已经启动了一个名为[MyScheduler_Worker-1]但未能阻止它的线程”。
但后来我看到了这条消息:
“[DEBUG] 28 Sep 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.
答案 0 :(得分:4)
我知道这是一个旧线程,但万一其他人正在寻找它。
我们一直用来获取线程的警告,直到我们在ServletContextListener.shutDown()方法中添加代码来关闭Quartz Scheduler。
关闭调度程序:
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 :(得分:0)
您可以假设没有内存泄漏,因为您看到了线程关闭消息。但是,可以通过在关闭之前清除线程来发出警告。
The shutdown-hook plugin catches the event of the JVM terminating, and calls shutdown on the scheduler.
详细信息: - http://quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigPlugins