반응형

특정 Exception이 발생했을 경우 일정 횟수만큼 재시도할 수 있는 어노테이션이다.

 

예를 들어, 서비스 내에서 다른 서비스에 있는 API를 호출할 때 간헐적으로 통신 오류가 발생할 수 있다.

이럴 때 특정메소드에 재시도 할 수 있는 기능이 있다.

 

사용법은 아주 간단하다.

1. Spring Application에 @EnableRetry 어노테이션 추가

2. 재시도 하고 싶은 메소드에 @Retryable 어노테이션 추가

- include : 여기에 설정된 특정 Exception이 발생했을 경우 retry한다.

- exclude : 설정된 Exception 재시도 제외

- maxAttempts : 최대 재시도 횟수 (기본 3회)

- backoff : 재시도 pause 시간

 

@Retryable(maxAttempts = 2, backoff = @Backoff(2000), value = IllegalStateException.class,
            exclude = { NullPointerException.class, NullPointerException.class })
    public String retryExample(Integer intValue) {
        ~~~~~~~
        return String.format("성공");
    }
반응형

+ Recent posts