у меня два ThreadPoolExecutors
.Первый, инициализированный таким образом один раз, в afterPropertiesSet()
:
ThreadPoolTaskExecutor firstTaskExecutor = null;
, а затем
this.firstTaskExecutor= new ThreadPoolTaskExecutor();
this.firstTaskExecutor.setBeanName("reports");
this.firstTaskExecutor.setMaxPoolSize(3);
this.firstTaskExecutor.setQueueCapacity(200);
this.firstTaskExecutor
.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
this.firstTaskExecutor.afterPropertiesSet();
this.firstTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);
Второй подключается через Bean
в другом контроллере:
@Bean
public TaskExecutor threadPoolTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(4);
executor.setMaxPoolSize(4);
executor.setThreadNamePrefix("EMAILS");
executor.initialize();
return executor;
}
После добавления второй к коду все задачи, выполняемые первым TaskExecutor, похоже, обрабатываются только одним потоком, что означает, что второй пул влияет на первый.
Может ли это быть причиной этого?