본문 바로가기

강의/스프링배치

스프링 배치 실행 - Transition

Transition에 대해 알아보자.

Transition: 조건에 따라 흐름을 전환시키는 역할을 하는 api (on(), to() , stop() / fail() / end() / stopAndRestart())

on : 문자열을 이용하여 패턴을 지정할 수 있다. ->

step이 종료되면 나서 exitStatus라는 종료코드를 저장하는 속성이 있는데

이 값은 complete, failed, executing stop 등의 속성이 있다.

최종 결과의 상태값이 (ExitStatus) on의 패턴과 같다면 to 로 넘어가라는 뜻이다.

 

to 부터 stop, fail, end, stopRestart는 transitionBuilder에 존재한다.

 

 

Transition

 - Flow내 Step의 조건부 실행이 가능하도록 하게 함 (정해진 순서나 규칙에 따라서 실행하는 것이 아닌 조건에 따라서 다양한 step이 실행되도록 구성할 수 있음)

 - Job의 API 설정에서 on(String pattern) 메소드를 호출하면 TransitionBuilder가 반환되어 Transition Flow를 구성할 수 있음

 - Step의 종료상태(ExitStatus)가 어떤 pattern과도 매칭되지 않으면 스프링 배치에서 예외를 발생하고 Job은 실패

 - 매칭이 되게 구성을 해야 한다, 매칭이 되지 않으면 다음 단계를 알 수 없기 때문에 예외가 발생하는 것이다.

 - 

 

Flow가 실행되면 FlowExecutionStatus에 상태값이 저장되고 최종적으로 Job의 BatchStatus와 ExitStatus에 반영된다.

Step에 batchStatus 및 ExitStatus에는 아무런 영향을 주지 않고 job의 상태만을 변경한다.

 

 

 

 

 

 

 

 

SimpleJobBuilder에서 on 메서드를 호출하게 되면

flowjob을 구성할 수 있는 JobFlowBuilder 가 return된다.

 

start에 step을 넣는다고 해도 on 메서드를 이용해서 flowjob으로 만들 수 있는 것이다.