定义自己的并发池
@Component
public class ThreadPoolConfig {
@Bean(name = "commonThreadPool")
public ThreadPoolTaskExecutor commonThreadPool() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(6);
executor.setMaxPoolSize(6);
executor.setQueueCapacity(30000);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("commonThreadPool");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.initialize();
return executor;
}
}
代码中实际调用:
由于poiinfo是个对象,需要做一定的预处理,先处理为List
考虑tmps可能过大,使用Lists.partition进行分组,每组20000个传入并发
List