본문 바로가기

강의/스프링배치

TaskletStep 아키텍처

1. Job과 TaskletStep 사이에서 StepExecution 도메인 객체가 생성이 됨.

2. StepExecution 안에 ExecutionContext를 생성하고, taskletStep에 StepExecution을 전달한다.

3. 이때 ExecutionContext의 배치 상태는 STARTED(시작) 종료 상태는 EXECUTING(실행) 상태이다.

 

4. TaskletStep, RepeatTemplate 사이에서 StepListener의 beforeStep이 호출된다.

5. tasklet 실행이 끝나게 되면 RepeatStatus.Continuable -> 에서 RepeatStatus.finished 상태값으로 변한다. (null 값을 return하긴 함)

6. StepListener에서 afterStep이 실행됨.

7. stepExecution은 step의 최종 상태를 update합니다. 

8. exitStatus는 나중에 custom 하게 변경할 수 있다. 

 

 

 

1. SimpleJob이 doExecute 메서드를 통해서 step들을 호출한다.

2. SimpleStepHandler 클래스에서 handleStep 메서드가 호출되고 여기서 StepExecution을 생성한고, step을 실행하기도 함

3. AbstractStep 클래스에서 listener를 호출 하고 step을 호출함

4. TaskletStep 클래스에서 stepOperations (RepeatTemplate)를 통해 반복 실행을 시킴, transactional 처리를 위한 transactionTemplate 객체가 생성이됨.

5. AbstractStep에서 listener 호출 afterstep 실행이됨

 

'강의 > 스프링배치' 카테고리의 다른 글

Job and flow  (0) 2023.01.25
JobStep  (0) 2023.01.21
TaskletStep 아키텍처  (0) 2023.01.21
tasklet() - startlimit() / allowStartIfComplete  (0) 2023.01.21
TaskletStep  (0) 2023.01.16