У меня есть ScheduledExecutorService
, и я выполняю задачу каждые 15 минут (в веб-приложении в Tomcat).
За ServletContextListener
в contextDestroyed
я выполнил:
Runtime.getRuntime().addShutdownHook(new Thread(){
@Override
public void run(){
scheduler.shutdown();
}
});
Планировщик запускается как:
final Runnable r = new Runnable(){
@Override
public void run() {
System.out.println("My task");
//Do some task
}
};
updater.scheduleWithFixedDelay(r, 30, 15, TimeUnit.MINUTES);
Вопрос: Вкл. shutdown
не выполняется ни одна оставшаяся задача.
Выполняется задача, но я не вижу никаких журналов, поэтому кажется, что онане выполняется.Зачем?
ОБНОВЛЕНИЕ:
Если я запускаю tomcat, а затем через 2 минуты выключаюсь, то задача не считается запланированной и должна выполняться?Я имею в виду, если задание отправлено, не считается ли оно ожидающим?Или это должно быть на самом деле работает?