Table of Contents
-
Transition
-
Flow 내 Step의 조건부 전환(전이)을 정의
-
Job의 API 설정에서 on(String pattern) 메소드를 호출하면 TransitionBuilder가 반환되어 Transition Flow 구성이 가능
-
Step의 종료상태(ExitStatus)가 어떤 pattern과도 매칭되지 않으면 스프링 배치에서 예외를 발생하고 Job이 실패 처리됨
-
transition은 구체적인 것 부터 그렇지 않은 순서로 적용된다.
-
-
API
-
on(String pattern)
-
Step의 실행 결과로 돌려받는 종료상태(ExitStatus)와 매칭되는 패턴 스키마, BatchStatus와 매칭하는 것이 아님
-
pattern은 와일드카드(*)를 포함할 수 있음
-
-
@Bean
public Job batchJob() {
return this.jobBuilderFactory.get("batchJob")
.start(step1())
.on("FAILED")
.to(step2())
.on("FAILED")
.stop()
.from(step1())
.on("*")
.to(step3())
.next(step4())
.from(step2())
.on("*")
.to(step5())
.end()
.build();
}Flow Job 실행 흐름도
graph TD
Start((Start)) --> Step1[Step 1]
Step1 -- "성공(Yes)" --> Step3[Step 3]
Step3 --> Step4[Step 4]
Step4 --> Stop((Stop))
graph TD
Start((Start)) --> Step1[Step 1]
Step1 -- "실패(No)" --> Step2[Step 2]
Step2 --> Step5[Step 5]
Step5 --> Stop((Stop))