提交间隔

如前所述,步骤会读取和写出项目,并定期提交 通过使用提供的PlatformTransactionManager.其中提交间隔1,它 在写完每个项目后提交。在很多情况下,这并不理想, 因为开始和提交交易成本很高。理想情况下,更理想的是 在每笔交易中尽可能多地处理项目,这完全依赖于 处理的数据类型以及该步骤所涉及的资源。 因此,你可以配置提交中处理的项目数量。spring-doc.cadn.net.cn

以下示例展示了一个谁的任务小提交间隔根据 Java 定义的 10 值:spring-doc.cadn.net.cn

Java 配置
@Bean
public Job sampleJob(JobRepository jobRepository, Step step1) {
    return new JobBuilder("sampleJob", jobRepository)
                     .start(step1)
                     .build();
}

@Bean
public Step step1(JobRepository jobRepository, PlatformTransactionManager transactionManager) {
	return new StepBuilder("step1", jobRepository)
				.<String, String>chunk(10).transactionManager(transactionManager)
				.reader(itemReader())
				.writer(itemWriter())
				.build();
}

以下示例展示了一个谁的任务小提交间隔在XML中定义的值为10:spring-doc.cadn.net.cn

XML 配置
<job id="sampleJob">
    <step id="step1">
        <tasklet>
            <chunk reader="itemReader" writer="itemWriter" commit-interval="10"/>
        </tasklet>
    </step>
</job>

在上述例子中,每笔交易中处理10个项目。在 处理开始时,交易开始。而且每次ItemReader,计数器被递增。当它达到10时,汇总项目列表 传递给ItemWriter,交易已提交。spring-doc.cadn.net.cn