提交间隔
如前所述,步骤读入和写出项目,并定期提交
通过使用提供的 .如果 a 为 1,则它
在写入每个单独的项目后提交。这在许多情况下并不理想,
因为开始和提交事务的成本很高。理想情况下,最好是
在每笔交易中处理尽可能多的项目,这完全取决于
正在处理的数据类型以及步骤与之交互的资源。
因此,您可以配置提交中处理的项目数。PlatformTransactionManager
commit-interval
-
Java
-
XML
以下示例显示了 a 的值为 10,因为它将在 Java 中定义:step
tasklet
commit-interval
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)
.reader(itemReader())
.writer(itemWriter())
.build();
}
以下示例显示了 a 的值为 10,因为它将在 XML 中定义:step
tasklet
commit-interval
XML 配置
<job id="sampleJob">
<step id="step1">
<tasklet>
<chunk reader="itemReader" writer="itemWriter" commit-interval="10"/>
</tasklet>
</step>
</job>
在前面的示例中,每个事务中处理 10 个项目。在
开始处理,开始交易。此外,每次在 上调用 时,计数器都会递增。当它达到 10 时,聚合项的列表
将传递给 ,并提交事务。read
ItemReader
ItemWriter