Кварц на веб-приложении - планировщик не останавливается - PullRequest
3 голосов
/ 22 июня 2011

У меня есть webapp, работающий на weblogic, который запускает Планировщик на ServletContextListener.

Проблема в том, что планировщик работает бесконечно, поэтому, даже если я остановлю веб-приложение или переустановлю планировщик, он продолжит работу.

Я должен иметь возможность остановить планировщик для contextDestroyed, но у меня нет экземпляра. Я видел пару веб-сайтов, рекомендующих этот подход к проблеме, но у них у всех есть планировщики, запускаемые определенное количество раз.

Ответы [ 4 ]

1 голос
/ 23 июня 2011

Если вы хотите завершить работу, не дожидаясь окончания использования выполняемых заданий:

scheduler.shutdown(false);

Проверьте эту страницу для получения дополнительной информации.

1 голос
/ 22 июня 2011

Quartz поставляется с сервлетом, специально предназначенным для запуска и остановки планировщика при запуске и завершении работы приложения, просто добавьте в файл web.xml следующее:

0 голосов
/ 22 июня 2011

После закрытия приложения вы должны позвонить

        scheduler.shutdown();

Иногда вам нужно выполнить Thread.sleep (1000);чтобы он правильно отключился.

Сделайте это в прослушивателе ContextLoad или другом имеющемся у вас крюке отключения.

Получение экземпляра зависит от того, как вы настроили кварц, но по умолчаниюПланировщик может быть получен следующим образом:

        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

См. http://www.quartz -scheduler.org / docs / 1.x / quick_start_guide.html для получения дополнительной информации

0 голосов
/ 22 июня 2011
...