У меня есть сервлет, отмеченный как @WebListener
.Java EE WebListener и Thread
public void contextInitialized(ServletContextEvent event) {
schedulerEngine = Executors.newSingleThreadScheduledExecutor();
schedulerEngine.scheduleAtFixedRate(new Batch1(), 0, MILLISECONDS_ITERATE_PA, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch2(), 0, MILLISECONDS_ITERATE_IAS, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch3(), 0, MILLISECONDS_ITERATE_EV1, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch4(), 0, MILLISECONDS_ITERATE_MV1, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch5(), 0, MILLISECONDS_ITERATE_BB, TimeUnit.MILLISECONDS);
schedulerEngine.scheduleAtFixedRate(new Batch6(), 0, MILLISECONDS_ITERATE_EV, TimeUnit.MILLISECONDS);
}
public class BatchX implements Runnable {
@Override
public void run() {
....
}
}
MILLISECONDS_ITERATE_XX = 60000
(1 минута).
Возможно ли, что какая-то нить остановилась на проблемах памяти?
Если в моем методе запуска BatchX()
у меня есть исключение (например, NullPointerException
), поток останавливается навсегда?
Хорошо, но я знал бы, если это исключение блокирует все мои запланированные потоки. Например, если я буду ждать минуту после исключения в методе run(), мой планировщик (объект schedulerEngine) перенесет мою партию? – CeccoCQ
@Cecco: К сожалению нет, проверьте мое редактирование. – Tudor
Хорошо, спасибо. Я прочитал все javadoc, и теперь я пытаюсь помешать исключению в свой код. – CeccoCQ