꿀똥벌레
꿀똥벌레 개발 블로그
꿀똥벌레
전체 방문자
오늘
어제
  • 분류 전체보기 (90)
    • JAVA (17)
    • SPRING (14)
    • Elasticsearch (4)
    • GRADLE (2)
    • HTML, CSS (0)
    • JAVASCRIPT (0)
    • GIT (1)
    • Vue.js (1)
    • server (1)
    • Python (0)
    • IT리뷰 (0)
    • 인프라 (6)
    • IOS (21)
    • 디자인패턴 (20)
    • Kafka (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • spring integration
  • persistent connection
  • ES
  • KEEPALIVE
  • 스프링 인티그레이션
  • SWIFT
  • java
  • maxConnPerRoute
  • springintegration
  • elasticsearch
  • maxConnTotal
  • 인덱스 템플릿
  • connectionRequestTimeout
  • 스프링 인테그레이션
  • 엘라스틱서치
  • persistence connection
  • mappings
  • spring
  • Index
  • Index Template

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
꿀똥벌레

꿀똥벌레 개발 블로그

SPRING

Spring 메소드 실행 실패시 재실행

2021. 5. 24. 22:06

Spring Retry

메서드가 실패 하였을때 재 실행 할 수 있도록 도와주는 Spring AOP의 일종 이다.

네트워크 호출과 같은 일시적 문제가 있을 경우 사용한다.

build.gradle Dependency 추가

implementation group: 'org.springframework.retry', name: 'spring-retry', version: '1.3.1'

Retry 사용이 가능하도록 annotation 설정

@EnableRetry
@SpringBootApplication
public class RanchatApplication {
    public static void main(String[] args) {
        SpringApplication.run(RanchatApplication.class, args);
    }
}

Retry 사용

@Service
public class RetryTestService {

  private int cnt;

  @Retryable(value = NullPointerException.class,
      maxAttempts = 3,
      backoff = @Backoff(delay = 2000),
      recover = "recover2"
  )
  public void retryTest() {
    System.out.println("retryCnt : " + cnt);
    if (cnt++ < 5) {
      throw new NullPointerException();
    }
  }

  @Recover
  public void recover11(Exception exception) {
    System.out.println("recover@@@");
  }

  @Recover
  public void recover2(Exception exception) {
    System.out.println("recover222222");
  }
}
  • @Retryable 을 통해 재실행 가능한 메소드로 설정한다.
  • value: 어떤 Exception 이 발생시 재실행을 시도하는지 설정, 없을시 모든 Exception에 대해 재실행
  • maxAttempts: 최대 실행 횟수
  • backoff: 재실행시 딜레이 시간 설정
  • recover: 최대실행 횟수까지 실패 했을 경우 지정된 recover 메소드가 실행된다.
  • recover메소드는 반드시 @Recover어노테이션과 첫번째 파라미터로 Retryable메소드에서 발생한 Exception을 받을 파라미터가 필요하다.

'SPRING' 카테고리의 다른 글

Spring Envers 로 자동 이력 관리  (0) 2021.06.20
Spring Event  (0) 2021.05.27
Spring Rest Docs 사용법  (0) 2021.05.02
Spring Batch  (0) 2021.04.28
Spring RestTemplate  (0) 2021.04.20
    꿀똥벌레
    꿀똥벌레
    개발자 꿀똥벌레 입니다.

    티스토리툴바