This commit is contained in:
xiangwbs
2018-04-18 21:36:33 +08:00
parent d87e13c29f
commit 9425155112
@@ -8,6 +8,8 @@ import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.Filter;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadPoolExecutor;
/**
* 说明: 程序上下文配置
@@ -48,16 +50,24 @@ public class ApplicationContextConfig {
/**
* 任务线程池
* 无线程可用的处理策略:
* AbortPolicy(默认) 抛出RejectedExecutionException
* CallerRunsPolicy 调用者的线程会执行该任务,如果执行器已关闭,则丢弃
* DiscardPolicy 不能执行的任务将被丢弃
* DiscardOldestPolicy 如果执行任务尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序(如果再次失败,则重复此过程)
*
* @return
*/
@Bean(name = "taskExecutor")
public ThreadPoolTaskExecutor getPoolTaskExecutor() {
ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor();
poolTaskExecutor.setCorePoolSize(5);//核心线程数
poolTaskExecutor.setMaxPoolSize(1000);//最大线程数
poolTaskExecutor.setKeepAliveSeconds(30000);//空闲线程的存活时间
poolTaskExecutor.setQueueCapacity(200);//队列最大长度
poolTaskExecutor.setCorePoolSize(5);//核心线程数
poolTaskExecutor.setQueueCapacity(200);//任务队列最大长度
poolTaskExecutor.setMaxPoolSize(1000);//最大线程数
//拒绝任务的处理策略
RejectedExecutionHandler reject = new ThreadPoolExecutor.CallerRunsPolicy();
poolTaskExecutor.setRejectedExecutionHandler(reject);
return poolTaskExecutor;
}
}