Конфигурация ExecutorService с виртуальными потокамиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Конфигурация ExecutorService с виртуальными потоками

Сообщение Anonymous »

В сервисе у меня есть 2 executorServices для разных задач:
  • получить пользовательские транзакции (50–100 потоков, очередь 300)
  • получить семейство пользователей (10–50 потоков, очередь 100)
Было легко отслеживать потоки, добавлять ресурсы и реализовывать логику «пропустить это». задача, если очередь заполнена».
Как это следует перенести на Java 21? Можно ли еще реализовать эту логику «пропустить эту задачу, если очередь заполнена»?
Пример:
private ThreadPoolTaskExecutor getExecutor(AsyncProperties executorProperties, ContextDataDecorator contextDataDecorator) {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setVirtualThreads(executorProperties.isVirtual());
executor.setTaskDecorator(contextDataDecorator);
executor.setCorePoolSize(executorProperties.getPoolSize());
executor.setMaxPoolSize(executorProperties.getPoolSize());
executor.setThreadNamePrefix(executorProperties.getThreadNamePrefix());
executor.setRejectedExecutionHandler((runnable, threadPoolExecutor) -> log.warn("Task {} was skipped by executor {}", runnable, threadPoolExecutor));
if (executorProperties.hasQueueCapacity()) {
executor.setQueueCapacity(executorProperties.getQueueCapacity());
}
executor.initialize();
return executor;
}

конфигурации:
transactions.executor:
pool-size: 100
thread-name-prefix: transactions-async-executor-
queue-capacity: 200
virtual: true
family.executor:
pool-size: 50
queue-capacity: 100
thread-name-prefix: family-async-


Подробнее здесь: https://stackoverflow.com/questions/797 ... al-threads
Ответить

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

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

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

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

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