Я пытаюсь настроить RetryTemplate в Spring Batch, я просто не могу найти пример того, как добавить RetryTemplate в StepBuilderFactory. Я нашел этот пример, чтобы настроить его в приложении SpringBoot, https://dzone.com/articles/how-to-use-spring-retry-template, но с Spring Batch не повезло.
Причина, по которой я пытаюсь использовать RetryTemplate, заключается в настройке Exponential BackOffPolicy (Spring Batch, как настроить период повтора для неудачных заданий).
Я предполагаю, что подключить RetryTemplate было бы так же просто, как установить Bean-компонент RetryTemplate, что-то в этом роде (измененный код из @Mahmoud Ben Hassine answer Spring Batch, как настроить период повтора для неудачных заданий):
@Bean
public RetryTemplate testExponentialBackoff() throws Exception {
// configure backoff policy
ExponentialBackOffPolicy exponentialBackOffPolicy = new ExponentialBackOffPolicy();
exponentialBackOffPolicy.setInitialInterval(1000);
exponentialBackOffPolicy.setMultiplier(2.0);
exponentialBackOffPolicy.setMaxInterval(10000);
// configure retry policy
SimpleRetryPolicy simpleRetryPolicy = new SimpleRetryPolicy();
simpleRetryPolicy.setMaxAttempts(5);
// configure retry template
RetryTemplate retryTemplate = new RetryTemplate();
retryTemplate.setBackOffPolicy(exponentialBackOffPolicy);
retryTemplate.setRetryPolicy(simpleRetryPolicy);
return retryTemplate;
}
Я не нахожу способ подключить его к StepBuilderFactory. Я бы предположил, что это будет что-то похожее на стандартную повторную попытку:
.faultTolerant()
.retryLimit(3)
.retry(ConnectTimeoutException.class)
Есть ли у кого-нибудь пример / шаблон о том, как настроить его с помощью конфигурации Java?
Любая помощь / пример приветствуется. Спасибо, Маркус.