Жизненный цикл (запуск, завершение) службы ScheduledExecutorService внутри Spring Signleton - PullRequest
0 голосов
/ 11 ноября 2018

Я использую ScheduledExecutorService внутри Spring Singleton. Он выполняет периодическую проверку, которую планируется запускать каждые x минут. Я лениво (или наполовину лениво) инициализирую переменные-члены Singleton (Исполнитель), реализуя метод ApplicationListener<ContextStartedEvent>#onApplicationEvent - который создал ScheduledExecutorService и назначил задачу.

Мне нужно разобраться с отключением ExecutorService и задаться вопросом, как это сделать правильно. Я знаю, что у Spring есть процесс завершения работы контекста, и я удивляюсь, имеет ли смысл вызывать завершение работы где-то оттуда.

Что именно происходит, если ExecutorService не завершает работу, а Сервер закрывается или завершается? Разве JVM не очищает всю память, связанную с этой программой?

Спасибо

...