Spring批处理使用带分区器的阅读器

时间:2015-12-22 15:18:26

标签: java spring-batch

我有工作,读取文件并将其写入数据库。为了获得更好的性能,我想分开我的步骤,这样我就会一次读取几个文件,所以我使用了分区器。这里是相关配置

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但没有成功。

由于

0 个答案:

没有答案