Я использую ScheduledExecutorService
для запуска запланированных потоков.
Я реализовал ServletContextListener.contextDestroyed
и вызвал ScheduledExecutorService.shutdownNow
и awaitTermination
.
Вот пример:
@Override
public void contextDestroyed(ServletContextEvent servletcontextevent) {
pool.shutdownNow(); // Disable new tasks from being submitted
try {
// Wait a while for existing tasks to terminate
if (!pool.awaitTermination(50, TimeUnit.SECONDS)) {
pool.shutdownNow(); // Cancel currently executing tasks
System.err.println("Pool did not terminate");
}
} catch (InterruptedException ie) {
// (Re-)Cancel if current thread also interrupted
pool.shutdownNow();
// Preserve interrupt status
Thread.currentThread().interrupt();
}
}
Тем не менее, я получаю следующую ошибку от Tomcat 7:
SEVERE: веб-приложение [/ servlet], похоже, запустило поток с именем [Timer-0], но не получилосьчтобы остановить это.Это может привести к утечке памяти.
Можно ли игнорировать этот журнал?Или я что-то не так делаю?
Спасибо