[spring Batch Series] 03.08.jobexecution
March 17, 2025
JobExecution
- 실행 중인 Job의 특정 인스턴스
- 이벤트에 반응하여 트리거되거나 일정에 따라 실행될 떄마다 Job이 생성
- 실행에 대한 모든 정보를 포함하여, 매개변수, 실행 컨텍스트 및 상태가 포함된다.
- 시작부터 끝까지 전체 프로세스를 캡슐화하여 모니터링 및 관리를 가능하게 한다.
- JobRepository에 저장되어 Job실행의 상태와 컨텍스트를 지속적으로 유지한다.
- STARTED
- STOPPING
- STOPPED
- COMPLETED
- FAILED
- UNKNOWN
- JobParameter와 함께 사용하여
- 고유성 부여 : 매개변수에 의해 고유하게 식별될 수 있다.
- 조건부 로직: 실행 흐름을 결정할 수 있다.
- 재사용성과 유연서어 : 재사용이 가능하고 하드 코딩된 값을 외부에서 매개변수로 받아서 처리할 수 있다.
- ExecutionContext:
- SharingData : 서로 다른 단계 간 데이터와 상태를 공유할 수 있게 해준다.
- Checkpoint Management : 긴 실행 프로세스에서 체크 포인트 관리에 중요하다. Job실패 후 재시작시 ExecutionContext에서 상태를 복원해서 중단지점부터 처리한다.
- Flexibility : 공유 컨텍스트에 데이터를 저장하고 꺼내올 수 있다.
- Customization : 저장해야할 데이터를 정의하고 Job의 요구 사항에 대해서 매우 유연하고 적응 가능하게 만든다.
- 재시작 과정
- SetUpJobRestartability
- HandlingExecutionContext
- JobParameter
- TriggeringRestasrt
- MonitoringAndLogging