ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링 배치 반복 및 오류 제어
    Spring/Spring Boot 2022. 3. 30. 23:39

     

    Repeat

     

    스프링 배치에서 반복을 종료할 것인지 여부를 결정하는 세가지 항목

     

    1. RepeatStatus

    • 스프링 배치의 처리가 끝났는지 판별 위한 열거형
    • CONTINUABLE, FINISEHD

    2. CompletionPolicy

    • 정상 종료를 알리는데 사용. RepeatTemplate 의 iterate 메서드 안에서 반복을 중단할지 결정

    3. ExceptionHandler

    • 비정상 종료를 알림. RepeatCallback 안에서 예외 발생시 해당 핸들러를  참조해서 예외를 다시 던질지 여부 결정

     

    RepeatContext

    - 일시적으로 사용할 필요가 있는 데이터를 저장

     

    tasklet 을 수행하다가 예외가 발생했다고 가정하자. 이 때 ExceptionHandler를 설정했다면 반복여부를 결정 할 수 있다.

    설정하지 않았다면 CompletionPolicy를 보고 종료 정책에 따라 반복 여부를 결정한다. CompletionPolicy 에서도 종료되지 않았다면 마지막으로 RepeatStatus를 보게 된다

     

     

    CompletionPolicy

     

    TimeoutTerminationPolicy - 반복시점부터 현재시점까지 소요된 시간이 설정된 시간보다 크면 반복종료

    CountingCompletionPolicy - 일정 카운트를 계산 및 집계해서 카운트 제한 조건이 만족하면 반복종료

    SimpleCompletionPolicy - 현재 반복 횟수가 Chunk 갯수보다 크면 반복종료

     

     

    ExceptionHandler

    LogOrRethrowExceptionHandler - 예외를 로그로 기록할지 혹은 다시 던질지 결정

    RethrowOnThresholdExceptionHandler - 지정된 유형의 예외가 임계 값에 도달시 다시 발생

    SimpleLimitExceptionHandler - 예외 타입 중 하나가 발견되면 카운터가 증가하고 한계가 초과되었는지 여부 확인 후 Throwable 다시 던짐.

     

     

     

     

     

    참고


    스프링 배치

     

Designed by Tistory.