此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2spring-doc.cn

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2spring-doc.cn

在大多数情况下,您希望异常导致跳过或失败。然而 并非所有异常都是确定性的。如果在 读取时,它总是针对该记录抛出。重置 没有帮助。 但是,对于其他异常(例如 , 表示当前进程已尝试更新另一个进程的记录 保持锁定状态),请等待并重试可能会导致成功。StepFlatFileParseExceptionItemReaderDeadlockLoserDataAccessExceptionspring-doc.cn

在 Java 中,应按如下方式配置 retry:spring-doc.cn

@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 中,应按如下方式配置 retry:spring-doc.cn

<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>

允许对单个项目的重试次数进行限制,并且 “可重试”的异常列表。您可以在 retry 中找到有关重试工作原理的更多详细信息。Stepspring-doc.cn