У меня возникали проблемы, когда некоторые задания не выполнялись. , и я думаю, это потому, что мне не хватало TaskExecutor, из-за чего мой JobLauncher запускал задания синхронно.
Я включил ThreadPoolTaskExecutor со следующей конфигурацией компонента:
Код: Выделить всё
@Bean
fun taskExecutor(): TaskExecutor {
val executor = ThreadPoolTaskExecutor()
executor.corePoolSize = 1
executor.maxPoolSize = 4
executor.keepAliveSeconds = 600
executor.queueCapacity = 1
return executor
}
Полагаю, это имеет смысл, поскольку я установил емкость очереди, равную 1, но мое желаемое поведение заключается в том, что в очередь может быть поставлено «бесконечное» количество задач, при этом выполняется максимум 4 потока, пока количество доступных задач для работы не упадет ниже моего максимума.
Есть ли способ сделать это с помощью ThreadPoolTaskExecutor или что-то подобное?
Подробнее здесь: https://stackoverflow.com/questions/790 ... -a-threadp
Мобильная версия