【发布时间】:2019-11-06 19:48:01
【问题描述】:
我使用 spring 线程池来管理我的项目中的线程。 但是当我的代码运行时出现了一些问题。 我得到如下异常:
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 ,很奇怪。
【问题讨论】:
-
任何解决方案????
标签: java spring threadpool threadpoolexecutor