TaskletStep 간단 요약
1. Job이 Step을 실행
2. Step은 RepeatTemplate 내 Tasklet을 실행
3. Tasklet 내 비즈니스 로직 수행 후 예외 발생 여부에 따른 조건 분기
3.1 예외 발생 시 반복문 종료 및 Step 종료
4. 정상적으로 비즈니스 로직이 수행될 경우 RepeatStatus에 따른 조건 분기
4.1 RepeatStatus가 FINISHED일 경우 반복문 종료 및 Step 종료
4.2 RepeatStatus가 CONTINUABLE일 경우 2번으로 돌아가서 다시 Tasklet 실행
TaskletStep 상세
1. SimpleJob이 각각의 Step들을 실행합니다.
- SimpleJob 아키텍처는 https://jaimemin.tistory.com/2300 참고
- StepExecution 생성 및 ExecutionContext 저장
- 배치 상태는 STARTED, ExitStatus는 Executing
- SimpleStepHandler의 handleStep 메서드에서 확인 가능
2. 등록된 StepExecutionListener의 beforeStep() 메서드 호출합니다.
- AbstractStep 클래스 내 execute 메서드에서 확인 가능
3. RepeatTemplate(stepOperations) 내 Tasklet을 반복 수행합니다.
- RepeatStatus의 별도 값을 부여하지 않을 경우 즉, null일 경우 FINISHED 처리
- TaskletStep 클래스 내 doExecute() 메서드 통해 확인 가능
4. 등록된 StepExecutionListener의 afterStep() 메서드를 호출하고 StepExecution을 최종 업데이트 합니다.
- 통상적으로 exitStatus와 batchStatus를 동일하게 업데이트
- AbstractStep 클래스 내 execute 메서드에서 확인 가능
위 내용을 정리한 그림
출처
스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch (정수원 강사님)
반응형
'Spring' 카테고리의 다른 글
[Spring Batch] SimpleFlow 아키텍처 (0) | 2023.07.17 |
---|---|
[Spring Batch] FlowJob 아키텍처 (0) | 2023.07.11 |
[Spring Batch] SimpleJob 아키텍처 (0) | 2023.07.10 |
[Spring Batch] 스프링 배치 도메인 정리 (0) | 2023.07.06 |
[Spring] 트랜잭션 전파 정리 (0) | 2023.04.30 |