Я работаю над приложением springboot и хочу добавить механизм resilience4j-retry. Я сделал следующие шаги:
Добавлены зависимости привода, aop и resilience4j в pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>io.github.resilience4j</groupId> <artifactId>resilience4j-spring-boot2</artifactId> </dependency>
Создан метод в контроллере, который будет пытаться поразить фиктивную службу (ожидается, что она потерпит неудачу). Добавлена аннотация @Retry к моему методу.
@GetMapping("/sample-api") @Retry(name = "sample-api") private String sampleApi() { log.info("Sample Api call receieved"); ResponseEntity<String> forEntity = new RestTemplate().getForEntity("http://localhost:8080/some-dummy-url", String.class); return forEntity.getBody(); }
Добавил конфигурацию в application.properties
resilience4j.retry.instances.sample-api.maxAttempts = 5
Также я пробовал с maxRetryAttempts. Но ничего не меняется.
Я ожидал, что он повторит попытку столько раз, сколько было настроено в application.properties. Однако он пытается только один раз. Не уверен, что я что-то упускаю. Может кто-нибудь помочь с этим?