출처
- 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다.
목차
- Spring Batch - 14. 배치 초기화 설정 (application.properties)
- Spring Batch - 13. JobLauncher
- Spring Batch - 12. JobRepository
- Spring Batch - 11. ExecutionContext
- Spring Batch - 10. StepContribution
- Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블
- Spring Batch - 08. Step
- Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블
- Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블
- Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블
- Spring Batch - 04. JobLauncher
- Spring Batch - 03. Job
- Spring Batch - 02. Batch 에서 사용하는 Table
- Spring Batch - 01. @EnableBatchProcessing
StepExecution
Step 에 대한 한번의 시도를 의미하는 객체로서 Step 실행 중에 발생한 정보들을 저장하고 있는 객체
BATCH_STEP_EXECUTION 테이블과 매핑된다.
StepExecution 객체는 Step 이 매번 시도될 때마다 각 Step 별로 생성되며 JobRepository 를 통해 저장됩니다. 이를 통해 실행 중인 Step의 정보를 추적하고, 필요한 경우 실행을 재개하거나 롤백할 수 있습니다.
Job 이 재시작 하더라도 이미 성공적으로 완료된 Step 은 재 실행되지 않고 실패한 Step 만 실행됩니다. 이전 단계 Step 이 실패해서 현재 Step 을 실행하지 않는다면 StepExecetoin 객체를 생성하지 않는다.
StepExecution 인터페이스
public interface StepExecution { |
JobExecution 과의 관계
- Step 의 StepExecution 이 모두 정상적으로 완료 되어야 JobExecution 이 정상적으로 완료된다.
- Step 의 StepExecution 중 하나라도 실패하면 JobExecution 은 실패한다.
Job & Step 이해하기
- Job 과 JobParamter 를 이용해 JobInstance 를 생성 후 실행시 JobExecution 을 생성한다.
- JobExecution 이 실행되면 각 Step 별로 StepExecution 이 생성된다.
- 같은 Job 내 StepExecution 의 Job 정보는 동일하다.
- 각 Step 별로 관리되는 값은 서로 상이하다.
- StepExecution 이 모두 COMPLETED 로 완료된 결우 JobExecution 상태도 COMPLETED 로 완료된다.
- StepExecution 이 하나라도 FAILED 로 끝날 경우 JobExecution 상태는 FAILED 상태가 된다.
|