Я использую Spring Thread Pool для управления потоками в моем проекте.Но что-то не так, когда мой код работает.Я получаю исключения, такие как:
org.springframework.core.task.TaskRejectedException: Executor [java.util.concurrent.ThreadPoolExecutor@4cfc01ab[Running, pool size = 200, active threads = 0, queued tasks = 40, completed tasks = 7990]] did not accept task: java.util.concurrent.FutureTask@6ba9fcd5
Выдает TaskRejectedException
, когда пул "активных потоков" равен нулю.
Я прочитал документацию и исходный код из Spring, но ничего не нашел.
Мой класс TaskExecutor:
@Bean
public ThreadPoolTaskExecutor taskExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setKeepAliveSeconds(200);
taskExecutor.setCorePoolSize(200);
taskExecutor.setMaxPoolSize(200);
taskExecutor.setQueueCapacity(40);
taskExecutor.setRejectedExecutionHandler(new
ThreadPoolExecutor.AbortPolicy());
return taskExecutor;
}
active threads
иногда 0, иногда 10, никогда 200, странно.