Кварц: утечка памяти? - PullRequest
       24

Кварц: утечка памяти?

7 голосов
/ 28 сентября 2011

Я использую Кварц для запуска работы каждый час. Сервлет работает на Tomcat, и я использую ServletConextListener для прослушивания, когда контекст уничтожен.

Когда я закрываю кота, я получаю сообщение:

"похоже, что запустил поток с именем [MyScheduler_Worker-1], но не смог остановить его".

Но позже я вижу это сообщение:

"[DEBUG] 28 сентября 11: 45: 26.671 утра 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.

Ответы [ 2 ]

4 голосов
/ 28 февраля 2013

Я знаю, что это старая тема, но в случае, если другие ищут ее.

Мы используем для получения предупреждений потоков все время, пока не добавим код для выключения Quartz Scheduler в нашем методе ServletContextListener.shutDown ().

Чтобы выключить планировщик:

            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;
                }
            }
0 голосов
/ 30 апреля 2012

Вы можете предположить, что утечки памяти нет, потому что вы видите сообщение о завершении потока. Тем не менее, предупреждение может быть отменено путем очистки потоков перед выключением.

The shutdown-hook plugin catches the event of the JVM terminating, and calls shutdown on the scheduler.

Подробности: - http://quartz -scheduler.org / документация / кварц-2.x / конфигурация / ConfigPlugins

...