Я подозреваю, что исключение может привести к остановке TimerTask, и в этом случае мне, скорее всего, понадобится вторая временная шкала для мониторинга того, что первый все еще работает?В чем причина того, что TimerTask перестанет работать в сервлете Tomcat
Update
Спасибо за ответы. Я унаследовал этот код так немного невежественно ...
Я только что увидел, что если я брошу невольное исключение в свою работу, TimerThread перестанет работать вечно.
Метод запуска TimerThread
показал, что при возникновении исключения моя запланированная нить никогда не запускается снова.
public void run() {
try {
mainLoop();
} finally {
// Someone killed this Thread, behave as if Timer cancelled
synchronized(queue) {
newTasksMayBeScheduled = false;
queue.clear(); // Eliminate obsolete references
}
}
}
Конец StackTrace будет:
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Так темп решение поймать ВСЕ ... больше долгосрочное решение заключается в переходе к более планирования в штатах BalusC.
... и третий, чтобы убедиться, что сторожевой все еще работает. Следовательно, сторонние библиотеки расписания. –
Не совсем понимаю ваш вопрос, но в случае, если вы хотите создать задачу расписания, верните это http://stackoverflow.com/questions/5357033/background-timer-task-in-jsp-servlet-web-application – lent
Никогда больше никогда используйте «Таймер» в предположительно пожизненном приложении Java EE! См. Также нижнюю часть этого ответа: http://stackoverflow.com/questions/15787605/how-to-run-a-background-job-method-at-fixed-intervals/15789574#15789574 – BalusC