Могут ли эти два ThreadPoolTaskExecutors влиять друг на друга? - PullRequest
0 голосов
/ 12 июня 2018

у меня два 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, похоже, обрабатываются только одним потоком, что означает, что второй пул влияет на первый.

Может ли это быть причиной этого?

...