Spring Batch Step
by HeshAlgo728x90
1. Step이란?
- Batch Job을 구성하는 독립적인 하나의 단계로서 실제 배치 처리를 정의하고 컨트롤하는데 필요한 모든 정보를 가지고 있는 도메인 객체
- 모든 Job은 하나 이상의 step으로 구성됨
2. 기본 구현체
1) Tasklet
- 가장 기본이 되는 클래스로서 Tasklet 타입의 구현체들을 제어
2) PartitionStep
- 멀티 스레드 방식으로 Step을 여러 개로 분리해서 실행
3) JobStep
- Step 내에서 Job을 실행
4) FlowStep
- Step 내에서 Flow를 실행
3. StepExecution
- Step에 대한 한번의 시도를 의미하는 객체로서 Step 실행 중에 발생한 정보들을 저장하는 객체
- Step이 매번 시도 될 때마다 각 Step별로 생성
- Job이 재시작 하더라도 이미 성공적으로 완료된 Step은 재시작하지 않고 실패된 Step만 실행
- 이전 단계에서 Step이 실패해서 현재 Step을 실행하지 않았다면 StepExecution을 생성하지 않음.
즉, Step이 실제로 시작되었을 때만 StepExecution을 생성
4. Flow
4. StepContribution
- 청크 프로세스의 변경사항을 StepExecution에 업데이트 해주는 도메인 객체
- 청크 커밋 직전에 StepExecution의 apply 메소드를 호출하여 상태를 업데이트
- ExitStatus의 기본 종료 코드 외 사용자 정의 종료코드를 생성해서 적용 가능
'Spring Batch' 카테고리의 다른 글
Spring Batch Job (0) | 2023.05.22 |
---|---|
Spring Batch Introduction (0) | 2023.05.07 |
스프링 배치 DB 스키마 (0) | 2022.02.01 |
블로그의 정보
꾸준히 공부하는 개발 노트
HeshAlgo