Как я могу динамически изменять размер пула потоков в работающей Spring Boot ExecutorService без перезапуска приложения?JAVA

Программисты JAVA общаются здесь
Anonymous
Как я могу динамически изменять размер пула потоков в работающей Spring Boot ExecutorService без перезапуска приложения?

Сообщение Anonymous »

Я работаю над приложением Spring Boot, в котором использую ThreadPoolTaskExecutor для обработки фоновых задач. В настоящее время размер пула потоков настраивается в application.properties следующим образом:

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

spring.task.execution.pool.core-size=10
spring.task.execution.pool.max-size=20
Я хочу динамически корректировать размер ядра и максимального пула во время выполнения в зависимости от загрузки системы, без перезапуска приложения.
Я пробовал получить доступ к компоненту-исполнителю и использовать setCorePoolSize() и setMaxPoolSize(), но я не уверен, безопасно ли это или как гарантировать, что уже запущенные задачи не прерываются.
Мои вопросы являются:
  • Существует ли рекомендуемый подход для безопасного динамического изменения размера пула потоков?
  • Существуют ли для этого специальные утилиты Spring Boot?
  • Как я могу отслеживать использование пула потоков в режиме реального времени?


Подробнее здесь: https://stackoverflow.com/questions/798 ... boot-execu

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