Я реализую логи повторных попыток c, используя шаблон повторных попыток пружины, который необходимо повторить 3 раза для 2 типов исключений, которые, как ожидается, произойдут при вызове API с использованием шаблона остатка. По какой-то причине я не вижу его срабатывания.
Вот моя конфигурация RetryTemplate
@Bean(name="myRetryTemplate")
public RetryTemplate retryTemplate() {
RetryTemplate retryTemplate = new RetryTemplate();
final SimpleRetryPolicy simpleRetryPolicyCheck1 = new SimpleRetryPolicy();
final SimpleRetryPolicy simpleRetryPolicyCheck2 = new SimpleRetryPolicy();
simpleRetryPolicyCheck1.setMaxAttempts(3);
simpleRetryPolicyCheck2.setMaxAttempts(3);
final Map<Class<? extends Throwable>, RetryPolicy> policyMap = new HashMap<>();
policyMap.put(Exception1.class, simpleRetryPolicyCheck1 );
policyMap.put(Exception2.class, simpleRetryPolicyCheck2 );
final ExceptionClassifierRetryPolicy retryPolicy = new ExceptionClassifierRetryPolicy();
retryPolicy.setPolicyMap(policyMap);
retryTemplate.setRetryPolicy(retryPolicy);
return retryTemplate;
}
Вот мой сервисный вызов:
public Object getSomething(@PathVariable("id") String id) throws Exception{
return retryTemplate.execute(new RetryCallback<Object, Exception>() {
@Override
public Object doWithRetry(RetryContext arg0) {
Object o = restTutorialClient.getEmployeesList(id);
return o;
}
});
Я вижу смоделированный Исключение типа 1 выброшено. Но повторных попыток не происходит. Пожалуйста, руководство, чтобы узнать, где это терпит неудачу и корректирующие меры?