Category: Spring Batch

0

Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing JobParameter Job 을 실행할 때 함께 포함돼 사용되는 파라미터를 가진 도메인 객체 하나의 Job 에 존재할 수 있는 여러개의 JobInstancee 를 구분하기 위한 용도 JobParameter 와 JobInstance 는 1:1 관계다. JobParameter 생성 방법 BATCH_JOB_EXECUTION_PARAM 테이블과 매핑된다. 어플리케이션 실행 시 주입 Java -jar LogBatch.jar requestDate=20220101 코드로 실행 JobParameterBuilder, DefaultJobParametersConverter SpEL 이용 @Value(“#{jobParameter[requestDate]}”), @JobScopre, @StepScope 선언 필수 외부에서 전달하는 값이 표현식에 전달돼 저장된다.

0

Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing JobInstance 생성 및 실행 JobInstance란 Job에 JobParameters가 전달되어 만들어지는 실행가능한 논리적 작업 단위 객체이다. JobInstance 는 JobLauncher 가 샐행될 때 생성된다. JobLauncher 가 실행될 때는 새로운 JobInstance 생성 하거나 기존에 생성된 JobInstance 를 반환한다. 처음 시작하는 Job, JobParameter 일 경우 새로운 JobInstance 가 생성된다. 이전과 동일한 Job, JobParameter 로 실행 할 경우 이미 존재하는 JobInstance 를 반환한다. 내부적으로 JobName 과 JobKey 를 갖고 JobInstance 객체를 얻는다. Job 과 JobInstance 와의 관계는 1:N 관계를 갖는다. BATCH_JOB_INSTANCE 테이블과 매핑 JOB_NAME(Job) 과 JOB_KEY(JobParamter 해시값) 이 동일한 데이터는 중복해서 저장할 수 없다.

0

Spring Batch - 04. JobLauncher

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing JobLauncher JobLauncher 인터페이스는 Job 을 실행시키는 역할을 한다 JobLauncher 는 Job 과 JobParameter 객체를 이용해 Job 을 실행한 후 JobExecution 객체를 반환합니다. JobLauncher를 사용하여 Job을 실행하면 Spring Batch가 Job의 모든 단계를 처리하고, 각 단계에서 발생한 모든 예외를 처리합니다. 또한 Job의 실행 상태를 추적하고 Job의 진행 상황 및 결과를 보고합니다. Spring Batch는 다양한 유형의 JobLauncher를 제공합니다. 각 JobLauncher는 다른 방식으로 Job을 실행하고 반환하는 JobExecution 객체의 속성이 다를 수 있습니다. 일반적으로 Spring Batch에서는 SimpleJobLauncher를 사용하여 Job을 실행합니다. SimpleJobLauncher는 가장 간단한 방식으로 Job을 실행하고 JobExecution 객체를 반환합니다.

0

Spring Batch - 03. Job

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing Job 이란 Batch 계층 구조에서 가장 상위에 있는 개념으로 하나의 Batch 작업 자체를 의미한다. Job Configuration 을 통해 생성되는 객체 단위로서 Batch 작업을 어떻게 구성하고 실행할지를 명세해 놓은 객체 Batch Job 을 구성하기 위한 최상위 인터페이스며 Spring Batch 가 기본 구현체를 제공한다. 여러 Step 을 포함하는 컨테이너로서 반드시 한개 이상의 Step 으로 구성돼야 한다. Spring Batch에서 Job은 하나 이상의 Step으로 구성된 일련의 작업 흐름을 정의하는 개념입니다. Job은 일괄 처리 작업의 논리적인 단위이며, 배치 작업을 실행하는데 필요한 모든 정보를 포함합니다. Job은 일괄 처리 작업을 실행하는데 필요한 다양한 설정을 제공합니다. 예를 들어, Job은 어떤 Step이 실행되어야 하는지, 어떤 파라미터를 사용해야 하는지, 어떤 예외 상황에 대처해야 하는지 등의 정보를 포함합니다. 또한 Job은 실행 순서, 종료 조건, 중지/재시작 가능 여부 등의 작업 흐름을 제어하는 데 사용됩니다. Spring Batch에서 Job은 JobBuilderFactory를 사용하여 생성됩니다. JobBuilderFactory는 JobBuilder 객체를 생성하고, 이를 사용하여 Job을 구성합니다. JobBuilder 객체를 사용하여 Job의 이름, 작업 수행에 필요한 Step, 파라미터 등을 정의할 수 있습니다.

0

Spring Batch - 02. Batch 에서 사용하는 Table

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing Spring Batch 메타 데이터 스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(Job, Step, JobParameters 등) 의 정보들을 저장, 업데이트, 조회할 수 있는 스키마 를 제공한다. 과거, 현재의 실행에 대한 세세한 정보, 실행에 대한 성공과 실패 여부등을 일목요연하게 관리함으로서 배치운용에 있어 리스크 발생시 빠른 대처 가능 DB 와 연동할 경우 필수적으로 메타 테이블이 생성 돼야 함 스키마 생성 설정 수동 생성 : 쿼리 복사 후 직접 실행 자동 생성 - spring.batch.jdbc.initialize-schema 설정 ALWAYS 스크립트 항상 실행 RDBMS 설정이 돼 있을 경우 내장 DB 보다 우선적으로 실행 EMBEDDED (기본 값) 내장 DB 일 때만 실행되며 스키마가 자동 생성됨 NEBER 스크립트가 항상 실행 안된다. 내장 DB 일 경우 스크립트가 생성이 안되기 때문에 오류가 발생 운영에서는 수동으로 스크립트 생성 후 설정하는 것을 권장 # ALWAYS 로 설정spring.batch.jdbc.initialize-schema: always# EMBEDED 로 설정spring.batch.jdbc.initialize-schema: embedded# NEVER 로 설정spring.batch.jdbc.initialize-schema: never

0

Spring Batch - 01. @EnableBatchProcessing

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing @EnableBatchProcessing @EnableBatchProcessing 을 이용해 어플리케이션이 Spring Batch 로 실행될 수 있도록 자동으로 설정해준다. @SpringBootApplication@EnableBatchProcessing // Spring Batch 활성화public class SpringBatchApplication { public static void main(String[] args) { SpringApplication.run(SpringBatchApplication.class, args); }} Spring Batch 초기화 과정@EnableBatchProcessing 을 명시해주면 Batch 관련 설정 클래스 SimpleBatchConfiguration, BatchConfigurerConfiguration, BatchAutoConfiguration 를 실행시켜 Spring Batch 초기화 및 실행 구성이 이뤄진다.