如何让 Spring Batch 在一段时间后重试失败的步骤?
How to ask Spring Batch to retry a failed step after some amount of time?
如何让 Spring 批处理在一段时间后重试失败的步骤?
如果该步骤失败次数超过 x 次,我不想再重试该步骤并让整个作业失败。
我正在使用 Java 配置并且不想使用 XML 配置重试。
这里都可以
http://docs.spring.io/spring-batch/reference/html/retry.html
有一些已实施的重试政策,但我认为在您的情况下,您需要实施接口 RetryPolicy,以便满足您的需求。
如果您使用 Spring Batch
版本 2.2.0
之前的版本,则使用 Retry
functionality included in the Spring Batch library。
如上文开头所述 Spring 重试的批处理文档页面:
The retry functionality was pulled out of Spring Batch as of 2.2.0. It is now part of a new library, Spring Retry.
否则直接使用 Spring Retry(分拆 Spring 批处理项目),它添加了一些很好的声明方式来注释您需要的功能:
@Service
class MyService {
//...
@Retryable(maxAttempts=5, backoff=@Backoff(delay=100, maxDelay=500))
public myFunctionalityService() {
// ...
}
// ...
}
如何让 Spring 批处理在一段时间后重试失败的步骤?
如果该步骤失败次数超过 x 次,我不想再重试该步骤并让整个作业失败。
我正在使用 Java 配置并且不想使用 XML 配置重试。
这里都可以
http://docs.spring.io/spring-batch/reference/html/retry.html
有一些已实施的重试政策,但我认为在您的情况下,您需要实施接口 RetryPolicy,以便满足您的需求。
如果您使用 Spring Batch
版本 2.2.0
之前的版本,则使用 Retry
functionality included in the Spring Batch library。
如上文开头所述 Spring 重试的批处理文档页面:
The retry functionality was pulled out of Spring Batch as of 2.2.0. It is now part of a new library, Spring Retry.
否则直接使用 Spring Retry(分拆 Spring 批处理项目),它添加了一些很好的声明方式来注释您需要的功能:
@Service
class MyService {
//...
@Retryable(maxAttempts=5, backoff=@Backoff(delay=100, maxDelay=500))
public myFunctionalityService() {
// ...
}
// ...
}