try {
reponseType = retryTemplate.execute((RetryCallback<X, RetryException>) context -> {
try {
log.error("Calling api attempt #" + context.getRetryCount());
HttpEntity<x> xResponse = httpRestTemplate.exchange(requestUrl, HttpMethod.POST, entity, x.class);
return xResponse.getBody();
} catch (HttpStatusCodeException e) {
if (e.getStatusCode().is5xxServerError()) {
throw new RetryException("api returned Server Error", e);
}
return null;
}
});
} catch (RetryException e) {
throw e;
Определена политика retryTemplate в файле конфигурации, а httpRestTemplate является обычным шаблоном
@Bean
RetryTemplate retryTemplate() {
RetryTemplate retryTemplate = new RetryTemplate();
FixedBackOffPolicy fixedBackOffPolicy = new FixedBackOffPolicy();
fixedBackOffPolicy.setBackOffPeriod(30000);
retryTemplate.setBackOffPolicy(fixedBackOffPolicy);
retryTemplate.setRetryPolicy(new CustomRetryPolicy(3));
return retryTemplate;
}
Но не может повторно вызвать retryTemplate после указанного времени. Может ли кто-нибудь помочь мне, я думаю, что я запутался в игре исключений.