【发布时间】:2017-05-05 08:41:09
【问题描述】:
我正在使用Partitioner 来并行导入*.csv 文件。文件夹中大约有 30k 个文件。
问题:作业初始化大约需要 1-2 小时,直到所有文件都设置好。瓶颈在SimpleStepExecutionSplitter.split()。
问题:步骤初始化需要这么多时间是否正常?或者我可以以某种方式改进它?
@Bean
public Step partitionStep(Partitioner partitioner) {
return stepBuilderFactory.get("partitionStep")
.partitioner(step())
.partitioner("partitioner", partitioner)
.taskExecutor(taskExecutor())
.build();
}
@Bean
public TaskExecutor taskExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(4); //run import always with 4 parallel files
taskExecutor.setMaxPoolSize(4);
taskExecutor.afterPropertiesSet();
return taskExecutor;
}
@Bean
public Partitioner partitioner() throws IOException {
MultiResourcePartitioner p = new MultiResourcePartitioner();
p.setResources(new PathMatchingResourcePatternResolver().getResources("mypath/*.csv"));
return p;
}
【问题讨论】:
标签: java spring spring-batch