본문 바로가기

Spring Batch

(9)
JobRepository 란? 1. 기본 개념 배치 작업 중의 정보를 저장하는 저장소 역할 Job이 언제 수행되었고, 언제 끝났으며, 몇 번이 실행되었고 실행에 대한 결과 등의 배치 작업의 수행과 관련된 모든 meta data 를 저장함 JobLauncher, Job, Step 구현체 내부에서 CRUD 기능을 처리함 2. 실습 실습내용 : jobRepository를 이용하여 마지막에 실행된 JobExecution을 조회하여 StepExecution의 상태를 확인 - 첫 번째 실행 args : --name=batchJob requestDate=20220305 - 두 번째 실행 args : --name=batchJob requestDate=20220306 소스코드 : https://github.com/Woody-log/spring-bat..
ExecutionContext 란? 1. 기본 개념 프레임워크에서 유지 및 관리하는 키/값으로 된 컬렉션으로 StepExecution 또는 JobExecution 객체의 상태(state)를 저장하는 공유 객체 DB 에 직렬화 한 값으로 저장됨 - { “key” : “value”} 공유 범위 Step 범위 – 각 Step 의 StepExecution 에 저장되며 Step 간 서로 공유 안됨 Job 범위 – 각 Job의 JobExecution 에 저장되며 Job 간 서로 공유 안되며 해당 Job의 Step 간 서로 공유됨 Job 재 시작시 이미 처리한 Row 데이터는 건너뛰고 이후로 수행하도록 할 때 상태 정보를 활용한다 2. 실습 https://github.com/Woody-log/spring-batch-practice/tree/chapte..
StepContribution 이란? 보호되어 있는 글입니다.
StepExecution 이란? 보호되어 있는 글입니다.
Step 이란? 1. 기본 개념 Batch Job 을 구성하는 독립적인 하나의 단계로서 실체 배치 처리를 정의하고 컨트롤하는 데 필요한 모든 정보를 가지고 있는 도메인 객체 단순한 단일 태스크 뿐 아니라 입력과 처리 그리고 출력과 관련된 복잡한 비즈니스 로직을 포함하는 모든 설정들을 담고 있다. 배치 작업을 어떻게 구성하고 실행할 것인지 Job 의 세부 작업을 Task 기반으로 설정하고 명세해 놓은 객체 모든 Job은 하나 이상의 step 으로 구성됨 2. 기본 구현체 TaskletStep : 가장 기본이 되는 클래스로서 Tasklet 타입의 구현체들을 제어한다. PartitionalStep : 멀티 스레드 방식으로 Step 을 여러 개로 분리해서 실행한다. JobStep : Step 내에서 Job 을 실행하도록 한다...
JobExecution 이란? 1.기본 개념 JobIstance 에 대한 한번의 시도를 의미하는 객체로서 Job 실행 중에 발생한 정보들을 저장하고 있는 객체 시작시간, 종료시간, 상태(시작됨, 완료, 실패), 종료상태의 속성을 가짐 JobIstance 과의 관계 JobExecution 은 'FAILED' 또는 'COMPLETED' 등의 Job의 실행 결과 상태를 가지고 있음 JobExecution 의 실행 상태 결과가 'COMPLETED' 면 JobInstance 실행이 완료된 것으로 간주해서 재 실행이 불가함 JobExecution 의 실행 상태 결과가 'FAILED' 면 JobInstance 실행이 완료되지 않은 것으로 간주해서 재 실행이 가능함. JobParameter 가 동일한 값으로 Job 을 실행할지라도 JobInstan..
JobParameter 란? 1. 기본개념 Job을 실행할 때 함께 포함되어 사용되는 파라미터를 가진 도메인 객체 하나의 Job 에 존재할 수 있는 여러개의 JobInstance 를 구분하기 위한 용도 JobParameter 와 JobInstance 는 1:1 관계 2. 생성 및 바인딩 어플리케이션 실행 시 주입 java -jar ***.jar requestDate=20220101 코드로 생성 JobParameterBuilder, DefaultJobParametersConter SpEL 이용 @Value(“#{jobParameter[requestDate]}”), @JobScope, @StepScope 선언 필수 3. BATCH_JOB_EXECUTION_PARAM 테이블과 매핑 JOB_EXECUTION 과 1:M 의 관계 4. 실습 ..
Job Instance란? 1. 기본개념 Job 이 실행될 때 생성되는 Job 의 논리적 실핼 단위 객체로서 고유하게 식별 가능한 작업 실행을 나타냄. Job 의 설정과 구성을 동일하지만 Job 이 실행되는 시점에 처리하는 내용은 다르기 때문에 Job 의 실행을 구분해야 함. 예들 들어 하루에 한 번씩 배치 Job 이 실행된다면 매일 실행되는 각각의 Job 을 Instance 로 표현한다. JobInstance 생성 및 실행 처음 시작하는 Job + JobParameter 일 경우 새로운 JobInstance 생성 이전과 동일한 Job + JobParameter 으로 실행 할 경우 이미 존재하는 JobInstace 리턴 내부적으로 JobName + JobKey (JobParameter 의 해시값)를 가지고 JobInstance 객..