007 Step Execution

강의메모 #

스프링 배치 도메인 이해 - StepExecution #

기본 개념 #

  • Step 에 대한 한번의 시도를 의미하는 객체로서 Step 실행 중에 발생한 정보들을 저장하고 있는 객체
    • 시작시간, 종료시간 ,상태(시작됨,완료,실패), commit count, rollback count 등의 속성을 가짐
  • Step 이 매번 시도될 때마다 생성되며 각 Step 별로 생성된다
  • Job 이 재시작 하더라도 이미 성공적으로 완료된 Step 은 재 실행되지 않고 실패한 Step 만 실행된다
  • 이전 단계 Step이 실패해서 현재 Step을 실행하지 않았다면 StepExecution을 생성하지 않는다. Step이 실제로 시작됐을 때만 StepExecution을 생성한다
  • JobExecution 과의 관계
    • Step의 StepExecution 이 모두 정상적으로 완료 되어야 JobExecution이 정상적으로 완료된다.
    • Step의 StepExecution 중 하나라도 실패하면 JobExecution 은 실패한다

BATCH_STEP_EXECUTION 테이블과 매핑 #

  • JobExecution 와 StepExecution 는 1:M 의 관계
  • 하나의 Job 에 여러 개의 Step 으로 구성했을 경우 각 StepExecution 은 하나의 JobExecution 을 부모로 가진다

BATCH_STEP_EXECUTION #

img_3.png

BATCH_JOB_EXECUTION #

img_4.png

모든 Step이 성공하는 경우 - COMPLETED #

img_2.png

최소 1개의 Step이 실패하는 경우 - FAILED #

img_1.png

구조 #

img_5.png

예제 수행 관련 포스팅 #

https://devfunny.tistory.com/682