강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

도등어님의 프로필 이미지
도등어

작성한 질문수

주문시스템으로 알아보는 분산트랜잭션

spring-retry가 spring-core 패키지로 편입되었습니다.

해결된 질문

작성

·

8

0

TCC 구현하기(10) - Retry 를 활용하여 일시적인 오류에 대처하기

 

에서 spring retry를 사용하여 재시도를 적용하는 부분이 있습니다. 이에

  1. 의존성 추가

  2. @EnableRetry 어노테이션 추가

  3. 아래 코드 추가

@Retryable(
        retryFor = { Exception.class },
        noRetryFor = {
                HttpClientErrorException.BadRequest.class,
                HttpClientErrorException.NotFound.class
        },
        maxAttempts = 3,
        backoff = @Backoff(delay = 500)
)

를 했었습니다.

 

하지만 스프링 프레임워크 7.0, 스프링 부트 4.0 버전부터는 spring retry가 spring core 패키지로 편입되어 아래와 같이 retry를 적용해야 합니다.

  1. 별도 의존성 추가 필요없음

  2. @EnableRetry 어노테이션 대신 @EnableResilientMethods 어노테이션 추가

  3. 아래 코드 추가

@Retryable(
        includes = Exception.class,
        excludes = {
                HttpClientErrorException.BadRequest.class,
                HttpClientErrorException.NotFound.class
        },
        maxRetries = 3,
        delay = 500
)

 

위와 같은 방식으로 적용하시면 됩니다.

 

자주 쓰던 spring retry가 왜 안되나 싶어서 이유를 한참 찾았네요 허헛

 

참고

https://docs.spring.io/spring/reference/7.0-SNAPSHOT/core/resilience.html

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
도등어님의 프로필 이미지
도등어

작성한 질문수

질문하기