Java 使用带分区器的读卡器的Spring批处理
我的工作是读取文件并将其写入数据库。为了获得更好的性能,我想分割我的步骤,这样我将一次读取几个文件,所以我使用分区器。这里是相关的配置Java 使用带分区器的读卡器的Spring批处理,java,spring-batch,Java,Spring Batch,我的工作是读取文件并将其写入数据库。为了获得更好的性能,我想分割我的步骤,这样我将一次读取几个文件,所以我使用分区器。这里是相关的配置 Step partitionedStep = stepBuilderFactory.get("partitionStep") .partitioner(buildSingleFileStep(entityManagerFactory, stepBuilder)) .partitioner("flatfileToDbStep", b
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:流已关闭
谷歌搜索之后,我发现读卡器是状态满的,不能在多线程环境中使用。我的问题是如何配置我的读卡器
另外,我尝试了@StepScope注释,但没有成功
谢谢使用step scope是正确的方法…您能提供您尝试的配置和发生的情况吗?谢谢您的回答。我已经设法在参数上使用@StepScope和@Value注释将文件名延迟绑定到读取器