-
06. JobBackEnd/Spring Batch 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(); }
[참고자료]
반응형'BackEnd > Spring Batch' 카테고리의 다른 글
08. 배치 상태 유형 (0) 2021.12.22 07. Step (0) 2021.12.21 05. 스프링 배치 초기화 설정 (0) 2021.12.16 04. 도메인 언어(Domain Language) (0) 2021.12.15 03. 메타데이터 스키마(Meta-Data Schema) (0) 2021.12.11