Выключатель кварцевый планировщик - PullRequest
2 голосов
/ 10 октября 2010

В моем веб-приложении с Guice есть планировщик Quartz.Я следовал за кодом, найденным здесь .Все работает нормально, но я не могу понять, как выключить планировщик.Мой слушатель контекста выглядит так:

public class MyAppContextListener extends GuiceServletContextListener{

    @Override
    protected Injector getInjector() {
        return Guice.createInjector(new QuartzModule(), new MyAppServletModule());
    }
}

И модуль Quartz выглядит так:

public class QuartzModule extends AbstractModule {

@Override
protected void configure() {
    bind(SchedulerFactory.class).to(StdSchedulerFactory.class).in(Scopes.SINGLETON);
    bind(GuiceJobFactory.class).in(Scopes.SINGLETON);
    bind(Quartz.class).in(Scopes.SINGLETON);
}

Каков наилучший способ выключить планировщик, когда приложение остановлено или не развернуто?*

1 Ответ

3 голосов
/ 10 октября 2010

Вы можете использовать ServletContextListener .

Сервер приложений будет вызывать contextDestroyed(), когда ваше wep-приложение остановлено.

Это даст вам время для вызова необходимого на вашем QuartzModule (внутри метода contextDestroyed ()) непосредственно перед остановкой веб-приложения.

Просто не забудьте добавить теги <listener> в web.xml вашей сети.-app.

...