꿀똥벌레
꿀똥벌레 개발 블로그
꿀똥벌레
전체 방문자
오늘
어제
  • 분류 전체보기 (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)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

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

꿀똥벌레 개발 블로그

SPRING

Spring Batch FaultTolerance (장애 허용)

2021. 12. 13. 16:02

FaultTolerance

스프링 배치를 사용시 어떠한 Exception 이 발생시 중단 후 실패처리를 하지 않고, 그대로 배치 잡을 계속해서 실행하고 싶을 때 사용한다.

stepBuilderFactory.get("step")
  .<ReadItem, WriteItem>chunk(3)
  .faultTolerant()
  .skip(Exception.class)
  .skipLimit(Integer.MAX_VALUE)

- Exception.class 및 그 하위 Exception이 발생했을때, 중단처리 하지 않고 계속 진행한다.

- skipLimit 횟수 만큼 Exception 발생을 용인 한다.

 

ProcessorNonTransactional

위와 같이 청크단위 처리방식의 배치를 사용하는 경우 청크단위로 트랜잭션이 처리가 되어진다.(insert or update 등..)

청크단위로 진행되며 Exception 발생시, 아래와 같은 문제가 발생한다.

{1, 2, 3}, {4, 5(문제발생), 6}, {4, 6}, {7, 8, 9} ....

4번에 해당하는 작업이 두번 실행되어, 트랜잭션과 무관하게 한번만 실행되어야 하는 작업인 경우(외부 api 를 호출 또는 push 메세지 발송 등) 두번 실행되는 경우가 발생한다.

이러한 경우 processorNonTransactional 을 추가한다.

stepBuilderFactory.get("step")
  .<ReadItem, WriteItem>chunk(3)
  .faultTolerant()
  .skip(Exception.class)
  .skipLimit(Integer.MAX_VALUE)
  .processorNonTransactional()

processorNonTransactional 을 추가 할 경우 아래와 같이 실행된다.

 

{1, 2, 3}, {4, 5(문제발생)}, {6}, {7, 8, 9} ....

 

단, 위와 같은 실행은 Processsor에서만 한정이며, writer는 마찬가지로 청크단위로 재실행 된다.

'SPRING' 카테고리의 다른 글

SpringBoot JpaRepository 를 Dependency Scan 에서 찾지 못할때  (0) 2022.11.10
Spring Retry  (0) 2022.05.18
Spring Envers 로 자동 이력 관리  (0) 2021.06.20
Spring Event  (0) 2021.05.27
Spring 메소드 실행 실패시 재실행  (0) 2021.05.24
    꿀똥벌레
    꿀똥벌레
    개발자 꿀똥벌레 입니다.

    티스토리툴바