Грациозное завершение виртуального потока Spring BootJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Грациозное завершение виртуального потока Spring Boot

Сообщение Anonymous »

Spring Boot обеспечивает корректное завершение работы, но только для Tomcat. Поскольку мои задачи также плавно завершаются, я настроил свой ThreadPoolTaskExecutor на:

Код: Выделить всё

// Initialize ThreadPoolTaskExecutor
threadPoolTaskExecutor.setAwaitTerminationSeconds(60);
threadPoolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);
При обновлении до Java 21 поддерживается виртуальный поток, поэтому пул потоков больше не нужен, вместо этого я использовал SimpleAsyncTaskExecutor. К сожалению, SimpleAsyncTaskExecutor не поддерживает плавное завершение работы, я перешел на этот SimpleAsyncTaskScheduler с помощью:

Код: Выделить всё

// Initialize SimpleAsyncTaskScheduler
simpleAsyncTaskScheduler.setTaskTerminationTimeout(600000);
Проблема в следующем:

Код: Выделить всё

This scheduler variant does not track the actual completion of tasks but rather just the hand-off to an execution thread
Поэтому, когда я закрываю свое приложение, все еще выполняются задачи, которые НЕ ожидают завершения, что не совсем изящно.
Как я могу решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ual-thread
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»