본문 바로가기
programming/SpringBoot

SpringBatch 기초 공부

by kvve 2022. 9. 22.

- JobBuilderFactory

Job객체를 만드는 여러개의 빌더를 통합하는 역할, Job을 쉽게 만들게 도와둔다.

 

- Decider

Job안에 Step들을 분기 처리해주는 if esle 역할이라고 보면 된다.

 

- JobExecution

JobInstance에 대한 실행 시도 객체.

JobInstance 실패 후 재실행 하여도 동일한 JobInstance 실행시키지만 2번째 시도시 JobExecution 은 개별로 다시 생긴다.

JobExecution은 JobInstance 실행에 대한 상태, 시작시간, 종료시간, 생성시간 등의 정보를 담는다.

 

- .on() : 캐치할 ExitStatus지정 (*)경우 전체

- .to : 다음으로 이동할 step 지정

- .end() : on(*)뒤 end는 FlowBuilder 반환 -> 계속 from 이어 갈 수 있음

             build()뒤 end는 FlowBuilder 종료

- .listener : Listener 메소드를 호출함 Job또는 Step 실행 전 후에 상태확인 및 작업을 추가하기 위함

- .on() : 캐치할 ExitStatus지정 (*)경우 전체

- .to : 다음으로 이동할 step 지정

- .from : 일종의 이벤트 리스너 역할, 상태값을 보고 일치하는 상태라면 to() 에 포함된 step을 호출

@Bean
public Job batchJob() {
    return jobBuilderFactory.get("batchJob")
            .start(step1())
            // step1이 성공한다면 step3 실행
            .on("COMPLETED").to(step3())
            // step1이 실패한다면 step2 실행
            .from(step1())
            .on("FAILED").to(step2())
            .end()
            .build();
}

 

 

참고 :

- https://velog.io/@code12/Spring-Batch-Spring-Batch-Job-Flow

- https://khj93.tistory.com/entry/Spring-Batch%EB%9E%80-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B3%A0-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

- https://junlab.tistory.com/273 

- https://heekng.tistory.com/177

 

 

 

'programming > SpringBoot' 카테고리의 다른 글

SpringBoot 프로젝트 배포  (0) 2022.04.21
gradle 라이브러리 추가 오류  (0) 2022.02.24

댓글