-
08. 배치 상태 유형BackEnd/Spring Batch 2021. 12. 22. 21:30반응형
BatchStatus
JobExecution과 StepExecution의 속성으로 Job과 Step의 종료 후 최종 결과 상태가 무엇인지 정의합니다. COMPLETED, STARTING, STARTED, STOPPING, STOPPED, FAILED, ABANDONED(처리를 완료했지만 성공하지 못한 단계와 재시작 시 건너 뛰어야하는 단계), UNKNOWN 단계가 있습니다.
SimpleJob
- 마지막 Step의 BatchStatus 값을 Job의 최종 BatchStatus 값으로 반영
- Step이 실패할 경우 해당 Step이 마지막 Step이 된다.
FlowJob
- Flow 내 Step의 ExitStatus 값을 FlowExecutionStatus 값으로 저장
- 마지막 Flow의 FlowExecutionStatus 값을 Job의 최종 BatchStatus 값으로 반영
ExitStatus
JobExecution과 StepExecution의 속성으로 Job과 Step의 실행 후 어떤 상태로 종료되었는지 정의합니다. 기본적으로 ExitStatus는 BatchStatus와 동일한 값으로 설정됩니다. UNKNOWN, EXECUTING, COMPLETED, NOOP, FAILED, STOPPED 단계가 있습니다.
SimpleJob
- 마지막 Step의 ExitStatus 값을 Job의 최종 ExitStatus 값으로 반영
FlowJob
- Flow 내 Step의 ExitStatus 값을 FlowExecutionStatus 값으로 저장
- 마지막 Flow의 FlowExecutionStatus 값을 Job의 최종 ExitStatus 값으로 반영
사용자 정의 ExitStatus
ExitStatus에 존재하지 않는 exitCode를 새롭게 정의해서 설정할 수 있습니다. StepExecutionListener의 afterStep() 메서드에서 Custom exitCode 생성 후 새로운 ExitStatus를 반환하면 됩니다.
FlowExecutionStatus
FlowExecution의 속성으로 Flow의 실행 후 최종 결과 상태가 무엇인지 정의합니다. Flow 내 Step이 실행되고 나서 ExitStatus 값을 FlowExecutionStatus 값으로 저장합니다. FlowJob의 배치 결과 상태에 관여하며 COMPLETED, STOPPED, FAILED, UNKNOWN 단계가 있습니다.
[참고자료]
반응형'BackEnd > Spring Batch' 카테고리의 다른 글
10. Scope (0) 2021.12.24 09. Flow (0) 2021.12.23 07. Step (0) 2021.12.21 06. Job (0) 2021.12.16 05. 스프링 배치 초기화 설정 (0) 2021.12.16