기본개념
- Step에 대한 한 번의 시도를 의미하는 객체로서 Step 실행 중에 발생한 정보들을 저장하고 있는 객체
- 시작시간 , 종료시간 , 상태(시작됨 , 완료 , 실패) , commit count , rollback count 등의 속성을 가짐
- Step 이 매번 시도될 때마다 생성되며 각 Step 별로 생성된다
- Step 별로 생성된 StepExecution 끼리는 공유가 안된다
- Job 이 재시작 하더라도 이미 성공적으로 완료된 Step 은 재 실행되지 않고 실패한 Step 만 실행된다
- 이전 단계 Step 이 실패해서 현재 Step을 실행하지 않았다면 StepExecution을 생성하지 않는다. Step 이 실제로 시작됐을 때만 StepExcution을 생성한다
JobExecution 과의 관계
- Step의 StepExecution 이 모두 정상적으로 완료되어야 JobExecution 이 정상적으로 완료된다.
- Step의 StepExecution 중 하나라도 실패하면 JobExecution 은 실패한다
BATCH_STEP_EXECUTION 테이블과 매핑
- JobExecution 와 StepExecution 은 1:M의 관계
- 하나의 Job 에 여러 개의 Step으로 구성했을 경우 각 StepExecution 은 하나의 JobExecution을 부모로 가진다.
BATCH_STEP_EXECUYION
StepExecution ID | Step Name | JobExecution ID | Status |
1 | Step1 | 1 | COMPLETED |
2 | Step2 | 1 | COMPLETED |
3 | Step3 | 2 | COMPLETED |
4 | Step4 | 2 | FAILED |
BATCH_JOB_EXECUYION
JobExecution ID | JobInstance ID | Start Time | End Time | Status |
1 | 1 | 2022.08.18.12:00 | 2022.08.18.12:10 | COMPLETED |
2 | 2 | 2022.08.19.12:00 | 2022.08.19.12:10 | FAILED |
StepExecution 과정 그림으로 보기
'Spring Batch' 카테고리의 다른 글
Spring Batch 도메인 ExecutionContext (0) | 2022.08.30 |
---|---|
Spring Batch 도메인 StepContribution (0) | 2022.08.30 |
Spring Batch 도메인 Step (0) | 2022.08.23 |
Spring Batch 도메인 JobExecution (0) | 2022.08.22 |
Spring Batch 도메인 JobParameters (0) | 2022.08.19 |