Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- thread
- 키클락
- The law of Demeter
- 알고리즘
- 타입스크립트
- Resilinece4j
- Action Pattern
- zipkin
- 생산자 소비자 패턴
- 배치
- Spring Cloud Netfilx Eureka
- Transaction Pattern
- 멀티스레드
- 스프링 배치
- spring batch
- Java
- 사가 패턴
- saga pattern
- 디자인패턴
- 디자인 패턴
- TypeScript
- 스레드
- spring cloud
- Parallel Old GC
- Serial GC
- MSA
- Spring Boot Actuator
- 체인 패턴
- java 정렬
- JPA
Archives
- Today
- Total
PSD( Private-Self-Development )
JobBuilder 와 StepBuilder 그리고 배치 상태 종류 본문
JobBuilder 의 종류
- SimpleJobBuilder
- SimpleJob( 순차 실행 ) 을 생성한다.
- FlowJobBuilder
- FlowJob( flow 특정 및 해당 flow 순서로 실행 ) 을 생성한다.
JobBuilder API 인터페이스 예시
public Job job() {
return jobBuilderFactory.get("batchJob")
.start(Step) // 처음 실행 할 Step 설정 SimpleJobBuilder 생성
.next(Step) // 다음에 실행 할 Step 들을 순차적으로 연결
.incrementer(JobParametersIncrementer) // JobParameters 에서 필요한 값을 증가시켜 다음에 사용될 JobParameters 를 생성
.validator(JobParametersValidator) // 파라미터 유효성 검증 설정
.preventRestart(true) // Job의 재시작 여부 설정 (default:false)
.listener() // 이벤트 리스너 생성
.build();
}
StepBuilder 의 종류
- TaskletStepBulider
- TaskletStep 생성 기본
- SimpleStepBuilder
- TaskletStep 생성
- 내부 청크 기반의 작업을 처리하는 ChunkOrientedTasklet(대량 처리에 유리) 클래스 생성
- ChunkOrientedTasklet
- ItemReader, ItemProcessor, ItemWriter 의 순서를 가진다.
- ChunkOrientedTasklet
- PartitionStepBuilder
- PartionStep 생성
- 멀티 스레드 방식 으로 Job 을 실행한다.
- JobStepBuilder
- JobStep 생성
- Step 안에서 Job 을 실행한다.
- JobStep
- 실행 한 외부 Job 이 실패 하면, 해당 Step 이 실패하므로 기존 Job 도 실패한다.
- JobStep
- FlowStepBuilder
- FlowStep 생성
- Step 안에서 Flow 실행
- FlowJob
- Step 의 특정 상태에 따라 흐름을 전환하도록 구성 하기 위함
- FlowJob
- 내부에 SImpleFlow 를 가지고 있음
StepBuilder API 인터페이스 예시
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet(tasklet()) // TaskletStepBuilder
// .chunk(chunkSize) // SimpleStepBuilder
// .chunk(completionPolicy) // SimpleStepBuilder
// .partitioner(stepName, partitioner) // PartitionStepBuilder
// .partitioner(step) // PartitionStepBuilder
// .job(job) // JobStepBuilder
// .flow(flow) // FlowStepBuilder
.build();
}
Batch 상태 유형
BatchStatus
- JobExecution 과 StepExecution의 속성 Job 과 Step 종료 후 최종 결과 상태가 무엇인지 정의
- COMPLETED, STARTING, STARTED, STOPPING, STOPPED, FAILED, ABANDONED, UNKNOWN
ExitStatus
- JobExecution 과 StepExecution의 속성 Job 과 Step 의 실행 후 어떤 상태로 종료되었는지 정의
- UNKNOWN, EXECUTING, COMPLETED, NOOP, FAILED, STOPPED
FlowExecutionStatus
- FlowExecution 의 속성으로 Flow 의 실행 후 최종 결과 상태가 무엇인지 정의
- COMPLETED, STOPPED, FAILED, UNKNOWN
참조
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B0%B0%EC%B9%98/dashboard
'Backend > Spring Batch' 카테고리의 다른 글
Spring Batch 이벤트 리스너 (0) | 2023.04.24 |
---|---|
Spring Batch 멀티 스레드 프로세싱 (0) | 2023.04.19 |
Spring Batch 반복 및 오류 제어 (0) | 2023.04.17 |
Spring Batch 도메인 이해 (0) | 2023.02.06 |
Spring Batch 란? (0) | 2023.01.17 |