Я использую @CircuitBreaker из spring-retry в моем приложении.
Моя служба выглядит так
@CircuitBreaker(maxAttempts = 8, openTimeout = 5000, resetTimeout = 10000l,value= {HttpServerErrorException.class, ResourceAccessException.class})
public customer getcustomer(String abc) {
LOGGER.info("Trying to fetch customer details.");
throw new HttpServerErrorException(HttpStatus.INTERNAL_SERVER_ERROR);
}
@Recover
public customer fallbackForRecover(String abc){
LOGGER.info("Recovering - returning safe value");
return null;
}
Примечание
Я добавил @EnableRetry в свой основной класс (класс с @SpringBootApplication).
Проблема под рукой
Когда я пытаюсь запустить, он пытается только один раз. Я хочу, чтобы он повторил попытку для maxRetries. Далее идет восстановление для всех исключений, а не только для указанного исключения.
Сомнение
При просмотре журналов я вижу StatefulRetryOperationsInterceptor - Выполнение проксированного метода при повторной попытке с отслеживанием состояния : ... возможно ли, что я каким-то образом смогу установить этот перехватчик или что-то в этом роде (для таких значений, как политика отсрочки). 1026 * 1027 1029 * Есть ли пробел в моем понимании?