BackEnd/Spring Batch

08. 배치 상태 유형

hanseom 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 단계가 있습니다.

 

[참고자료]

인프런-스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch

반응형