Как я могу динамически изменять размер пула потоков в работающей 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
Ответить

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

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

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

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

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