Category: Job

0

Spring Batch - JobListener

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder 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 JobListener JobListener는 Job 실행 전후에 특정 작업을 수행할 수 있도록 하는 인터페이스 beforeJob 메서드는 Job 실행 전에 호출되며, JobExecutionContext를 인자로 받습니다. 이 메서드에서는 Job 실행 전에 수행해야 하는 작업을 구현할 수 있습니다. afterJob 메서드는 Job 실행 후에 호출되며, JobExecution과 JobExecutionDecider를 인자로 받습니다. 이 메서드에서는 Job 실행 후에 수행해야 하는 작업을 구현할 수 있습니다. public interface JobListener { public void beforeJob() throws Exception; public void afterJob() throws Exception;}

0

Spring Batch - 19. JobParameters 증가 JobParametersIncrementer

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder 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 JobParameters 증가 - JobParametersIncrementer JobParameters 의 변경없이 Job 을 여러번 재시작 하고 싶은 경우 설정 JobParameters 의 필요한 값을 증가시켜 다음에 사용될 JobParameters 객체를 반환합니다. 기존의 JobParameters 의 변경없이 Job 을 여러번 재시작 하고 싶은 경우 설정합니다. RunIdIncrementer 구현체를 지원하며 필요에 따라 JobParametersIncrementer 인터페이스를 직접 구현할 수 있습니다.

0

Spring Batch - 18. Job 의 재시작 방지 preventRestart

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder 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 의 재시작 방지 - preventRestart Job 이 실패하더라도 재시작하지 않도록 설정한다. SimpleJob 에는 Job의 재시작을 관리하는 restartable 은 기본값이 True 로 설정돼 있어 Job 이 실패했을시 재시작 하도록 합니다. preventRestart 메소드는 restartable 를 False 로 변경해 Job 이 실패하더라도 재시작하지 않도록 합니다. preventRestart 메소드는 Job 실행에 대한 JobExecution 객체가 있는지 확인하고 기존 객체가 없을 경우 Job 을 수행합니다. 만일 기존 JobExecution 객체가 있을 경우 Job 을 수행하지 않고 JobRestartException 예외를 발생시킨다.

0

Spring Batch - 17. JobParameters 검증 JobParametersValidator

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder 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 JobParameters 검증 - JobParametersValidatorJobParametersValidator 릍 통한 JobParameters 검증은 Job 을 실행하기 전에 SimpleJobLauncher 내부에서 한번 Job 이 실행할때 SimpleJobL 에서 한번 총 두번의 Validation 을 진행한다. public interface JobParametersValidator { void validate(@Nullable JobParameters parameters) throws JobParametersInvalidException;} JobParametersValidator 기본 구현체 - DefaultJobParametersValidator requiredKeys JobParameter 에 필수적으로 포함되어야 할 Key 필수 Key 가 없을 경우 JobParametersInvalidException 예외를 발생시킨다. optionalKeys JobParameter 에 선택적으로 포함되어야 할 Key public DefaultJobParametersValidator(String[] requiredKeys, String[] optionalKeys) { super(); setRequiredKeys(requiredKeys); setOptionalKeys(optionalKeys);}@Overridepublic void validate(@Nullable JobParameters parameters) throws JobParametersInvalidException { if (parameters == null) { throw new JobParametersInvalidException("The JobParameters can not be null"); } Set<String> keys = parameters.getParameters().keySet(); // optionalKeys 가 있을 경우에만 실행 if (!optionalKeys.isEmpty()) { Collection<String> missingKeys = new HashSet<>(); // JobParameters Key 에 대한 검증을 한다. for (String key : keys) { if (!optionalKeys.contains(key) && !requiredKeys.contains(key)) { missingKeys.add(key); } } // JobParameters 로 넘어온 Key 가 requiredKeys 에도 optionalKeys 에도 없으면 JobParametersInvalidException 예외를 발생시킨다. if (!missingKeys.isEmpty()) { throw new JobParametersInvalidException( "The JobParameters contains keys that are not explicitly optional or required: " + missingKeys); } } Collection<String> missingKeys = new HashSet<>(); // requiredKeys 가 JobParameters Key 에 모두 포함이 됐는지 검증한다. for (String key : requiredKeys) { if (!keys.contains(key)) { missingKeys.add(key); } } if (!missingKeys.isEmpty()) { throw new JobParametersInvalidException("The JobParameters do not contain required keys: " + missingKeys); }}

0

Spring Batch - 16. SimpleJob 와 SimpleJobLauncher

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder 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 SimpleJob Step 을 실행시킬 수 있는 Job 의 구현체로서 SimpleJobBuilder 에 의해 생성된다. 하나 이상의 Step 으로 구성되며 순차적으로 Step 을 실행시킨다. 모든 Step 의 실행이 성공적으로 완료 돼야 Job 이 최종적으로 성공 상태가 된다. SimpleJob 메소드 start 최초로 한번 설정 한 후 SimpleJobBuilder 가 생성되고 반환된다. next 다음 실행할 step 들을 순차적으로 연결하도록 설정 validator Job 실행에 필요한 Parameter 를 검증 DefaultJobParametersValidator 구현체를 지원하며 JobParametersValidator 인터페이스를 직접 구현할 수 있다. preventRestart Job 의 재실행을 방지 하는 설정 incrementer JobParameter 에서 필요한 값을 증가 시켜 다음에 사용할 JobParameter 오브젝트를 리턴 RunIdIncrementer 구현체를 지원하며 JobParametersIncrementer 인터페이스를 직접 구현할 수 있다.

0

Spring Batch - 배치 초기화 설정

출처 해당 포스트는 정수원 강사님의 스프링 배치 - 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 JobLauncherApplicationRunner Spring Batch 작업을 시작하는 ApplicationRunner 로서 BatchAutoConfiguration 에서 생성된다. Spring boot 에서 제공하는 ApplicationRunner 의 구현체로 어플리케이션이 정상적으로 구동되자 마자 실행된다. Bean 으로 등록된 모든 Job 을 실행시킨다. BatchProperties Spring Batch 의 환경 설정 클래스 Job 이름, 스키마 초기화 설정, 테이블 Prefix 등의 값을 설정할 수 있다. application.properties or application.yml 파일에 설정한다.

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, 파라미터 등을 정의할 수 있습니다.