ThreadPoolTaskExecutor @Async调用方法
ThreadPoolTaskExecutor @Async调用方法
@Configuration public class ThreadPoolConfig { // 核心线程池大小 private int corePoolSize = 50; // 最大可创建的线程数 private int maxPoolSize = 200; // 队列最大长度 private int queueCapacity = 1000; // 线程池维护线程所允许的空闲时间 private int keepAliveSeconds = 300; @Bean(name = "threadPoolTaskExecutor") public ThreadPoolTaskExecutor threadPoolTaskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setMaxPoolSize(maxPoolSize); executor.setCorePoolSize(corePoolSize); executor.setQueueCapacity(queueCapacity); executor.setKeepAliveSeconds(keepAliveSeconds); // 线程池对拒绝任务(无线程可用)的处理策略 executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); return executor; } }
调用
/** * 异步创建表并且从文件导入数据 * @param vo */ @Async(value = "threadPoolTaskExecutor") public void createFileData(FileDatasourceVo vo){ log.info("进入异步创建表.....start........"); .... }
备注:一定要在启动类上添加 @EnableAsync 注解,这样 @Async 注解才会生效。
浙公网安备 33010602011771号