Spring Batch
용어정리
Job
배치 처리 과정을 하나의 단위로 만들어 놓은 객체
배치 처리 과정의 전체 계층 최상단에 위치
JobInstance
Job의 실행 단위
Job 실행 시 하나의 JobInstance가 생성
JobParameters
Job Instance를 구분할 수 있도록 해주는 객체
Job Instance에 전달되는 매개변수 역할도(String ,Double, Long, Datae 형식만 제공)
JobExecution
Job Instance에 대한 실행 시도(상태, 시작시간, 종료시간, 생성시간 등)
Job instance 실행 실패 시 같은 Job instance를 실행시키지만 그에 따른 Job Execution은 각각 생성
Step
Job의 배치처리를 정의, 순차적인 단계를 캡슐화
최소 한 개 이상의 step을 가져야 함.
Job의 실제 일괄 처리를 제어하는 모든 정보가 있음
StepExecution
step 실행시도에 대한 객체
Job이 여러 개의 step으로 생성된 경우 이전 단계 step이 실패하면 다음 단계 실행되지 않으므로 Step Execution도 생성되지 ㅇ낳음
(read, write, commit, skip 수에 대한 정보)
ExecutionContext
Job에서 데이터 공유할 수 있는 데이터 저장소
JobExecutionContext : commit 시점에 저장
StepExecutionContext : 실행 사이에 저장
step간 데이터공유 가능
Job 실패 시 ExecutionContext를 통해 마지막 실행값을 재구성
JobRepository
모든 배치 처리 정보 담고있는 매커니즘
Job 실행 시 JobRepository에 JobExecution과 StepExecution을 생성
JobRepository에서 Execution 정보를 저장하고 조회하고 사용함
JobLauncher
Job과 JobParameters를 사용해 Job을 실행하는 객체
ItemReader
Step에서 Item을 읽어오는 인터페이스
ItemWriter
처리된 데이터를 작성할 때 사용(insert, update, send 등)
item을 chunk로 묶어서 처리
ㄹㄹㄹ
reader에서 읽어온 item을 데이터 처리하는 역할
배치처리에 필수요소는 아니며 reader, writer, processor 처리를 분리해 각 역할을 명확히 구분