2

如何让 Spring Batch 在一段时间后重试失败的步骤?

如果该步骤失败的次数超过 x 次,我不想再重试该步骤并让整个作业失败。

我正在使用 Java Config,并且不喜欢使用 XML 来配置重试。

4

2 回答 2

4

如果您使用的是Spring Batch之前的版本,请2.2.0使用Retry Spring Batch 库中包含的功能

正如上面引用的用于重试的 Spring Batch 文档页面的开头所述:

自 2.2.0 起,重试功能已从 Spring Batch 中移除。它现在是新库 Spring Retry 的一部分。

否则,直接使用Spring Retry直接(衍生 Spring Batch 项目)添加一些很好的声明方式来注释您需要的功能:

@Service
class MyService {
    //...
    @Retryable(maxAttempts=5, backoff=@Backoff(delay=100, maxDelay=500))
    public myFunctionalityService() {
        // ...
    }
    // ...
}
于 2016-08-04T15:24:24.423 回答
1

在这里一切都好

http://docs.spring.io/spring-batch/reference/html/retry.html

有一些已实现的重试策略,但我认为在您的情况下,您需要实现接口RetryPolicy以便满足您的需求。

于 2016-08-04T15:21:06.760 回答