본문 바로가기

강의/스프링배치

simpleJob 아키텍처

 

jobLauncher와 simpleJob 사이의 발생하는 일 

 

job이 실행될 때 오직 하나의 값을 가진 유일한 객체인 jobinstance가 생성된다.

jobExecution은 jobInstance의 한번의 실행이고

jobInstatnce와 jobExecution은 1:n 고나계이다.

 

jobExecution은 ExecutionContext 객체를 생성해서 포함하고 있다.

 

simpleJob과 Step 사이 발생하는 일

 

job을 구성할 때 joblistener를 구성할 수 있고

simplejob과 step사이

job이 실행 전 beforeJob을 실행할 수 있다.

 

step과 tasklet 사이에는

step 마다

stepExecution이 생성되고 

StepExeuction은 내부으로 Executioncontext를 생성한다.

 

 

 

 

SimpleJobLauncher 에서 마지막에 수행하였던 JobExecution을 가지고 옴.

 

 

새로운 jobExecution을 생성하게 

SimpleJobRepository

 

SimpleJobLauncher 

 

jobExecute는 AbstractJob에서 메서드 구현이 되어있다.

BatchStatus를 started로 변경하고

listener가 등록되어 있다면 beforeJob 메서드를 실행한다.

그뒤 doExecute 메서드를 호출하는데 여기서 step이 실행이 된다.

 

SimpleJob에서 step이 실행되고 있다.

BatchStatus가 completed 상태가 아니면 break로 빠져나오게 되어 다음 step은 수행이 안된다.

마지막에는 jobExecution에서는 batch 상태와 종료 코드 상태를 update 해주는 모습을 확인할 수 있다.

 

이후 afterJob이 실행된다.

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

TaskletStep  (0) 2023.01.16
StepBuilderfactory  (0) 2023.01.15
스프링 배치 실행 - incrementer()  (0) 2023.01.15
스프링 배치 실행 - preventRestart()  (0) 2023.01.14
SimpleJob - 개념 및 API 소개 (validator)  (0) 2023.01.10