| | |
| | | import org.springframework.scheduling.annotation.EnableAsync; |
| | | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
| | | |
| | | /** |
| | | * 线程池配置 |
| | | * |
| | | * @author tam |
| | | **/ |
| | | @Configuration |
| | | @EnableAsync |
| | | public class ThreadPoolConfig { |
| | | // 核心线程池大小 |
| | | private int corePoolSize = 50; |
| | | |
| | | // 最大可创建的线程数 |
| | | private int maxPoolSize = 200; |
| | | |
| | | // 队列最大长度 |
| | | private int queueCapacity = 1000; |
| | | |
| | | // 线程池维护线程所允许的空闲时间 |
| | | private int keepAliveSeconds = 300; |
| | | |
| | | //配置线程池中的线程的名称前缀 |
| | | private String threadNamePrefix = "async-importDB-"; |
| | | |
| | | @Bean(name = "threadPoolTaskExecutor") |
| | |
| | | executor.setQueueCapacity(queueCapacity); |
| | | executor.setKeepAliveSeconds(keepAliveSeconds); |
| | | executor.setThreadNamePrefix(threadNamePrefix); |
| | | // 线程池对拒绝任务(无线程可用)的处理策略 |
| | | executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); |
| | | return executor; |
| | | } |
| | | |
| | | } |