我有工作,读取文件并将其写入数据库。为了获得更好的性能,我想分开我的步骤,这样我就会一次读取几个文件,所以我使用了分区器。这里是相关配置
Step partitionedStep = stepBuilderFactory.get("partitionStep")
.partitioner(buildSingleFileStep(entityManagerFactory, stepBuilder))
.partitioner("flatfileToDbStep", buildPartitioner())
.taskExecutor(stepTaskExecutor)
.build();
buildSingleFileStep:
private TaskletStep buildSingleFileStep(EntityManagerFactory entityManagerFactory, SimpleStepBuilder stepBuilder) {
return stepBuilder
.reader(readerFactory.getReader())
.writer(new SomeWriter())
.build();
}
我正在使用标准的MultiResourcePartitioner和MultiResourceItemReader
在作业执行期间,我收到错误java.io.IOException:Stream已关闭 在googeling之后,我发现读者是有状态的,不能在多线程环境中使用。我的问题是如何配置我的阅读器?
PS。我试过@StepScope annotion但没有成功。
由于