此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Batch 文档 5.2.2! |
配置重试逻辑
在大多数情况下,您希望异常导致跳过或Step
失败。然而
并非所有例外都是确定性的。如果FlatFileParseException
遇到时
阅读时,它总是为该记录而投掷。重置ItemReader
无济于事。
但是,对于其他例外情况(例如DeadlockLoserDataAccessException
哪
表示当前进程已尝试更新另一个进程的记录
保持锁定),等待并重试可能会导致成功。
-
Java
-
XML
在 Java 中,重试应配置如下:
@Bean
public Step step1(JobRepository jobRepository, PlatformTransactionManager transactionManager) {
return new StepBuilder("step1", jobRepository)
.<String, String>chunk(2, transactionManager)
.reader(itemReader())
.writer(itemWriter())
.faultTolerant()
.retryLimit(3)
.retry(DeadlockLoserDataAccessException.class)
.build();
}
在 XML 中,重试应配置如下:
<step id="step1">
<tasklet>
<chunk reader="itemReader" writer="itemWriter"
commit-interval="2" retry-limit="3">
<retryable-exception-classes>
<include class="org.springframework.dao.DeadlockLoserDataAccessException"/>
</retryable-exception-classes>
</chunk>
</tasklet>
</step>
这Step
允许限制单个项目可以重试的次数,并且
“可重试”的异常列表。可以在重试中找到有关重试工作原理的更多详细信息。