[SpringBatch] State
JAVA/SpringBatch2020. 3. 25. 20:07
Flow 내부에 Step 및 정보들은 모두 State로 이루어져 있어서 State 클래스들은 어떻게 구성되었는지 볼겸 정리
- [I] State
- [AC] AbstractState
- [C] StepState
- [C] JsrStepState
- [C] DecisionState
- [C] FlowState
- [C] SplitState
- [C] JsrSplitState
- [C] DelegateState
- [C] EndState
- [C] JsrEndState
- [C] StepState
- [AC] AbstractState
State
State에 도메인 인터페이스
- 메소드
- FlowExecutionStatus handle(FlowExecutor) : 해당 State를 처리하는 메소드, 상태는 String을 반환할 수 있지만, 특정 동작 상태들은 상수로 정의되어있다.
- isEndState() : 마지막 State라면 true 리턴, 계속 처리 해야한다면 false를 리턴
AbstractState
보통 추상클래스에 공통로직들이 있는데, State는 공통로직이 거의 없다.
StepState
Step을 wrapping한 State인 만큼 Step을 변수로 가지고 있다.
- 변수
- Step : 자신에 해당하는 Step을 변수로 가짐
- 메소드
- FlowExecutionStatus handle(FlowExecutor) : Step을 FlowExecutor를 통해 실행
DecisionState
JobExecutionDecider 를 Wrapping 하고 있는 State
- 변수
- JobExecutionDecider : FlowExecutionStatus를 반환하는 decider
FlowState
Flow을 wrapping한 State인 만큼 Flow을 변수로 가지고 있다.
- 변수
- Flow : 자신에 해당하는 Flow을 변수로 가짐
SplitState
Flow를 병렬 처리 할경우 사용
- 변수
- Collection<Flow> : Split에 해당하는 Flow들
- TaskExecutor : Flow들을 실행하는데 활용되는 Executor
- FlowExecutionAggregator : 실행 후 aggregation에 활용
- 메소드
- FlowExecutionStatus handle(FlowExecutor) : 가지고 있는 Flow들을 실행, task들을 모두 기다리고 마지막에 aggregation
DelegateState
State Proxy에 활용
EndState
Job의 종료 관련
'JAVA > SpringBatch' 카테고리의 다른 글
SpringBatch에 external Configuration Class 검토 (0) | 2020.04.10 |
---|---|
org.springframework.batch.core.launch.NoSuchJobException: No job configuration with the name [longJob] was registered (0) | 2020.04.02 |
[Spring] Spring Batch Reader Writer (0) | 2020.03.24 |
[Spring Batch] Flow & Step (0) | 2020.03.23 |
[Spring Batch] Job (0) | 2020.03.20 |
댓글()