BackEnd/Spring Batch
06. Job
hanseom
2021. 12. 16. 23:59
반응형
스프링 배치는 Job과 Step을 쉽게 생성 및 설정할 수 있도록 util 성격의 빌더 클래스들을 제공합니다.
JobBuilderFactory
JobBuilder를 생성하는 팩토리 클래스로 get(String name) 메서드를 제공합니다. jobBuilderFactory.get("jobName")으로 생성합니다.
JobBuilder
Job을 구성하는 설정 조건에 따라 두 개의 하위 빌더 클래스를 생성하고 실제 Job 생성을 위임합니다.
- SimpleJobBuilder: SimpleJob을 생성하는 Builder 클래스로 Job 실행과 관련된 여러 설정 API를 제공합니다.
- FlowJobBuilder: FlowJob을 생성하는 Builder 클래스로 내부적으로 FlowBuilder를 반환함으로써 Flow 실행과 관련된 여러 설정 API를 제공합니다.
SimpleJob
Step을 실행시키는 Job 구현체로 SimpleJobBuilder에 의해 생성됩니다. 여러 단계의 Step으로 구성할 수 있으며 Step을 순차적으로 실행시킵니다. 모든 Step의 실행이 성공적으로 완료되어야 Job이 성공적으로 완료되며, 맨 마지막에 실행한 Step의 BatchStatus가 Job의 최종 BatchStatus가 됩니다.
API
// JobBuilderFactory > JobBuilder > SimpleJobBuilder > SimpleJob
public Job batchJob() {
return jobBuilderFactory
// JobBuilder를 생성하는 팩토리, Job의 이름을 매개변수로 받음
.get("batchJob")
// 처음 실행 할 Step 설정, 최초 한 번 설정하며 실행 시 SimpleJobBuilder 반환
.start(Step)
// 다음에 실행 할 Step 설정, 횟수는 제한이 없으며 모든 next()의 Step이 종료되면 Job 종료
.next(Step)
// JobParameter의 값을 자동으로 증가해 주는 JobParametersIncrementer 설정
// (기존의 JobParameter 변경 없이 Job을 여러 번 시작하고자 할 때 사용)
.incrementer(JobParametersIncrementer)
// Job의 재시작 가능 여부 설정 (기본값은 true이며, false 설정 시 Job 재시작 하지 않음)
.preventRestart(true)
// Job 실행에 파라미터를 검증하는 용도 (DefaultJobParametersValidator 구현체 지원)
.validator(JobParametersValidator)
// Job 라이프 사이클의 특정 시점에 콜백 제공받도록 JobExecutionListener 설정
.listener(JobExecutionListener)
// SimpleJob 생성
.build();
}
[참고자료]
반응형