Category: Step

0

Spring Batch - ItemStream

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 ItemStreamItemStream 은 ItemReader 와 ItemWriter 처리 과정 중 상태를 저장하고 오류가 발생하면 해당 상태를 참조하여 실패한 곳에서 재시작 하도록 지원합니다. 리소스를 열고 닫아야 하며 입출력 장치 초기화 등의 작업을 해야 하는 경우 사용합니다. public interface ItemStream { void open(ExecutionContext executionContext) throws ItemStreamException; void update(ExecutionContext executionContext) throws ItemStreamException; void close() throws ItemStreamException;}

0

Spring Batch - ItemWriter

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 ItemWriterItemWriter는 스텝에서 처리한 데이터를 출력하는 역할을 합니다. ItemWriter는 스텝에서 처리한 모든 데이터를 한 번에 출력하며, 출력 대상은 일반적으로 데이터베이스, 파일 또는 메시징 시스템과 같은 외부 저장소입니다. ItemWriter는 일반적으로 데이터베이스에 대한 INSERT, UPDATE 또는 DELETE 쿼리를 실행하거나, 파일에 대한 출력을 수행하거나, 메시징 시스템의 큐 또는 주제에 데이터를 전송하는 데 사용됩니다. Spring Batch는 다양한 유형의 ItemWriter를 제공합니다. 일반적으로 사용되는 ItemWriter 유형은 다음과 같습니다. JdbcBatchItemWriter: JDBC를 사용하여 데이터베이스에 대한 배치 INSERT, UPDATE 또는 DELETE 쿼리를 실행하는 데 사용됩니다. JpaItemWriter: JPA를 사용하여 데이터를 저장하는 데 사용됩니다. FlatFileItemWriter: CSV, 고정 길이 또는 구분 기호로 구분된 파일에 데이터를 씁니다. StaxEventItemWriter: XML 형식으로 데이터를 씁니다. JmsItemWriter: JMS 대기열에 데이터를 전송합니다.

0

Spring Batch - ItemProcessor

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 ItemProcessorItemProcessor는 Step 내에서 사용될 데이터를 변환 또는 가공하는 역할을 합니다. ItemReader가 읽어온 데이터를 ItemProcessor가 받아들여 처리하고, 처리한 결과를 ItemWriter에 전달합니다. ItemProcessor는 일반적으로 데이터 변환, 유효성 검사, 필터링 또는 데이터 가공과 같은 작업을 수행하는 데 사용됩니다. 예를 들어, ItemProcessor를 사용하여 입력 데이터의 길이를 제한하거나, 데이터를 수정하거나, 유효성을 검사하거나, 데이터를 필터링할 수 있습니다. ItemProcessor는 단일 입력 값을 받아 처리 결과를 반환하는 단순한 함수형 인터페이스인 ItemProcessor<T, S>를 구현합니다. 여기서 T는 입력 유형이고, S는 출력 유형입니다. ItemProcessor는 스텝 처리 과정에서 중요한 역할을 합니다. 데이터를 변환 또는 가공하여 ItemWriter가 처리할 수 있는 형식으로 변환하므로, 대용량 데이터 세트를 효율적으로 처리하는 데 매우 유용합니다. 또한, ItemProcessor를 사용하여 데이터 유효성 검사 및 데이터 가공 작업을 수행하여 데이터 품질을 유지하고, 필요한 작업을 수행할 수 있습니다. ItemProcessor 인터페이스

0

Spring Batch - ItemReader

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 ItemReaderItemReader는 스텝 내에서 사용될 데이터를 읽는 역할을 합니다. ItemReader는 스텝이 시작될 때 호출되며, 데이터 소스에서 데이터를 읽어 Chunk 단위로 ItemProcessor에 전달합니다. ItemReader는 일반적으로 파일, 데이터베이스 또는 메시징 시스템과 같은 외부 데이터 소스에서 데이터를 읽는 데 사용됩니다. Spring Batch는 다양한 유형의 ItemReader를 지원하며, 일반적으로 사용되는 ItemReader 유형은 다음과 같습니다. FlatFileItemReader: CSV, 고정 길이 또는 구분 기호로 구분된 파일에서 데이터를 읽는 데 사용됩니다. JdbcCursorItemReader: JDBC 쿼리를 실행하고 ResultSet에서 데이터를 읽는 데 사용됩니다. JpaPagingItemReader: JPA를 사용하여 페이징 처리를 수행하고 데이터를 읽는 데 사용됩니다. StaxEventItemReader: XML 데이터를 읽는 데 사용됩니다. JmsItemReader: JMS 대기열에서 데이터를 읽는 데 사용됩니다. 다수의 구현체들이 ItemReader 와 ItemStream 을 동시에 구현하고 있습니다. ItemStream 은 파일의 스트림을 열거나 종료, DB 커넥션을 열거나 종료, 출력 장치 초기화 등의 작업을 진행합니다.

0

Spring Batch - ChunkProvider 와 ChunkProcessor

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 ChunkProviderChunkProvider는 ItemReader에서 읽어온 데이터를 Chunk 단위로 분할하여 ItemProcessor 및 ItemWriter에 전달하는 객체 ChunkProvider는 스텝을 실행할 때 Chunk<I> 객체를 만들고 Chunk의 크기를 지정합니다. 예를 들어, Chunk의 크기를 10으로 설정하면, ItemReader에서 10개의 데이터를 읽어와서 ItemProcessor 와 ItemWriter에 전달합니다. 이러한 과정을 Chunk 단위로 반복하여 모든 데이터를 처리합니다. ChunkProvider는 ItemReader에서 반환된 모든 데이터를 저장하지 않고, Chunk 단위로 처리하기 때문에 대용량 데이터를 처리하는 데 매우 효율적입니다. 이를 통해 메모리 사용량을 최소화하고, 처리 속도를 향상시킬 수 있습니다. Spring Batch에서는 기본적으로 SimpleChunkProvider를 제공합니다. SimpleChunkProvider는 Chunk의 크기를 지정하고, ItemReader에서 읽어온 데이터를 Chunk 단위로 분할하여 ItemProcessor 및 ItemWriter에 전달합니다. 또한, SimpleChunkProvider는 실패 시 롤백을 수행할 수 있도록 구성할 수 있습니다.

0

Spring Batch - ChunkOrientedTasklet

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 ChunkOrientedTasklet ChunkOrientedTasklet은 Tasklet 인터페이스를 구현체로 Chunk 지향 처리를 담당하는 도메인 객체 ChunkOrientedTasklet은 이 execute() 메서드 내에서 ItemReader, ItemProcessor 및 ItemWriter를 사용하여 Chunk 지향 처리를 수행합니다. TaskletStep 에 의해 반복적으로 실행되며 ChunkOrientedTasklet 이 실행될 때마다 매번 새로운 Transaction 이 생성되어 처리가 이뤄집니다. 예외가 발생할 경우 해당 Chunk 는 Rollback 되며 이전에 Commit 한 Chunk 는 완료된 상태가 유지됩니다. 내부적으로 ItemReader 를 핸들링하는 ChunkProvider 와 ItemProcessor, ItemWriter 를 핸들링하는 ChunkProcessor 타입의 구현체를 갖습니다. ChunkOrientedTasklet 흐름

0

Spring Batch - Chunk 기반 Step

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 Chunk Chunk 란 여러개의 아이템을 묶은 하나의 덩어리, 블록을 의미합니다. 한번에 하나씩 아이템 입력을 받아 Chunk 단위의 덩어리로 만든 후 Chunk 단위로 트랜잭션을 처리합니다. 즉, Chunk 단위의 Commit 과 Rollback 이 이루어지게 됩니다. 일반적으로 대용량의 데이터를 한번에 처리하는 것이 아닌 Chunk 단위로 쪼개어서 더 이상 처리할 데이터가 없을 때까지 반복해서 입출력하는데 사용됩니다. Chunk는 대용량 데이터를 처리하는 데 사용되는 방법 중 하나입니다. Chunk 지향 처리는 일괄 처리 작업을 조각 단위로 분할하여 처리하며, 각 조각은 스텝 내에서 개별적으로 처리됩니다. 예를 들어, 1000개의 항목이있는 데이터 세트가 있다면, Chunk 처리를 사용하여 이 데이터를 100개씩 10 조각으로 분할 할 수 있습니다. Chunk는 큰 데이터 세트를 처리 할 때 매우 유용합니다. 데이터를 조각으로 나누어 처리하므로 메모리 부족 문제가 발생하지 않습니다. 대신 Chunk는 데이터를 작은 묶음으로 나누어 처리하고 일부 묶음이 완료되면 다음 묶음으로 이동합니다.

0

Spring Batch - 24. FlowJob

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/step/spring-batch-23-JobStep Post not found: spring/spring-batch/step/spring-batch-22-Tasklet Post not found: spring/spring-batch/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 FlowJobFlowJob은 일련의 스텝으로 구성됩니다. 각 스텝은 Tasklet 또는 Chunk 지향 스텝으로 구성될 수 있습니다. Tasklet은 일련의 작업을 수행하는 데 사용되며, Chunk 지향 스텝은 대량의 데이터를 처리할 때 사용됩니다. FlowJob은 각 스텝이 성공적으로 완료되면 다음 스텝으로 이동하도록 작동합니다. 각 스텝은 성공, 실패 또는 종료와 같은 결과를 반환합니다. 이 결과를 기반으로 FlowJob은 다음 스텝으로 이동하거나 작업을 중지할 수 있습니다. FlowJob은 각 스텝의 결과에 따라 다른 스텝으로 이동하거나 작업을 중지하도록 구성할 수 있습니다. 이를 통해 Spring Batch 사용자는 FlowJob을 사용하여 유연하고 복잡한 Batch 작업을 쉽게 구현할 수 있습니다. 또한, FlowJob은 분기와 조건 분기를 지원하여 작업 흐름을 더욱 세밀하게 제어할 수 있습니다. 예를 들어, 분기를 사용하여 성공 또는 실패에 따라 다른 작업을 실행하거나, 조건 분기를 사용하여 입력 데이터의 특성에 따라 다른 작업을 실행할 수 있습니다.

0

Spring Batch - 23. Job 을 Step 으로 갖는 JobStep

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step Spring Batch - 24. FlowJob Spring Batch - 23. Job 을 Step 으로 갖는 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 JobStepJob 에 속하는 Step 중에서 외부의 Job 을 포함하고 있는 Step 입니다. 외부의 Job 이 실패하게 되면 해당 Step 이 실패하므로 결국 해당 Step 을 가진 Job 도 실패하게 됩니다. 모든 메타데이터는 기본 Job 과 외부 Job 별로 각각 저장됩니다. 커다란 시스템을 작은 모듈로 쪼개고 Job 의 흐름을 관리하고자 할때 사용할 수 있습니다. @Beanpublic Job parentJob() { return this.jobBuilderFactory.get("parentJob") .start(jobStep(null)) .next(step2()) .build();}@Beanpublic Step jobStep(JobLauncher jobLauncher) { return this.stepBuilderFactory.get("jobStep") .job(childJob()) .launcher(jobLauncher) .listener(new StepExecutionListener() { @Override public void beforeStep(StepExecution stepExecution) { stepExecution.getExecutionContext().putString("name", "user1"); } @Override public ExitStatus afterStep(StepExecution stepExecution) { return null; } }) .parametersExtractor(jobParametersExtractor()) .build();}@Beanpublic Job childJob() { return this.jobBuilderFactory.get("childJob") .start(step1()) .build();}@Beanpublic Step step1() { return stepBuilderFactory.get("step1") .tasklet(new Tasklet() { @Override public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {// throw new RuntimeException("step1 was failed"); return RepeatStatus.FINISHED; } }) .build();}@Beanpublic Step step2() { return stepBuilderFactory.get("step2") .tasklet((contribution, chunkContext) -> { throw new RuntimeException("step2 was failed");// return RepeatStatus.FINISHED; }) .build();}@Bean public DefaultJobParametersExtractor jobParametersExtractor() { // ExecutionContext 에 설정된 Key 로 되있는 값을 가져올 수 있다. DefaultJobParametersExtractor extractor = new DefaultJobParametersExtractor(); extractor.setKeys(new String[]{"name"}); return extractor;}

0

Spring Batch - 22. Tasklet 기반 Step

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 Tasklet Tasklet 은 Step 에서 실행되는 작업의 단위 중 하나 Tasklet 은 Step 내에서 실행되는 작업의 단위 중 하나며 보통 단일 작업을 수행하는데 사용합니다. TaskletStep 객체에 의해 반복적으로 수행되며 Tasklet 반환값에 따라 계속 수행하거나 종료합니다. RepeatStatus : Taasklet 의 반복여부 상태 값 RepeatStatus.FINISHED : Tasklet 종료, RepeatStatus 를 null 로 반환하면 RepeatStatus.FINISHED 로 해석된다. RepeatStatus.CONTINUABLE : Tasklet 반복 Tasklet 인터페이스

0

Spring Batch - 21. TaskletStep

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 TaskletStep TaskletStep 은 Step 구현체 중 하나로 Tasklet 을 실행한다. TaskletStep 은 Step 인터페이스를 구현하며, Tasklet 을 실행하기 위한 Step 입니다. Tasklet 은 Step 의 실행 시점에 호출되는 단일한 실행 단위입니다. TaskletStep 을 사용하는 경우, Tasklet 인터페이스를 구현한 클래스를 작성하고, 해당 클래스에서 수행할 로직을 구현합니다. 이후 TaskletStep 을 정의할 때, 이 Tasklet 클래스를 참조하여 Step을 구성합니다. TaskletStep 을 사용하는 가장 일반적인 예는 파일을 읽어들이고, 처리한 후 결과를 파일로 출력하는 작업입니다. 이 경우, Tasklet 클래스에서 파일을 읽어들이고, 처리한 후 결과를 파일로 출력하는 로직을 구현하면 됩니다. 또한, TaskletStep 은 다양한 환경에서 사용될 수 있으며, Spring Batch의 다른 Step과 조합하여 다양한 처리 작업을 수행할 수 있습니다. TaskletStep 아키텍처

0

Spring Batch - 20. StepBuilderFactory 와 StepBuilder

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step 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 StepBuilderFactory StepBuilder 를 생성하는 팩토리 클래스 public class StepBuilderFactory { private JobRepository jobRepository; private PlatformTransactionManager transactionManager; public StepBuilderFactory(JobRepository jobRepository, PlatformTransactionManager transactionManager) { this.jobRepository = jobRepository; this.transactionManager = transactionManager; } public StepBuilder get(String name) { StepBuilder builder = new StepBuilder(name).repository(jobRepository).transactionManager( transactionManager); return builder; }} StepBuilder Step 구성을 쉽게 하기 위한 빌더 클래스

0

Spring Batch - 10. StepContribution

출처 해당 포스트는 정수원 강사님의 스프링 배치 - 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 StepContribution Chunk 프로세스의 변경 사항을 버퍼링 한 후 StepExecution 상태를 업데이트 하는 객체 Chunk Commit 직전에 StepExecution 의 apply 메서드를 호출해 상태르르 업데이트 한다. ExitStatus 의 기본 종료 코드 외 사용자 정의 종료 코드를 생성해서 적용할 수 있다. TaskletStep 클래스내 doInTransaction 메서드에서 StepExecution 객체를 이용해 StepContribution 객체를 생성한다. Tasklet 을 실행시킨다. TaskletStep.java

0

Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블

출처 해당 포스트는 정수원 강사님의 스프링 배치 - 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 StepExecution Step 에 대한 한번의 시도를 의미하는 객체로서 Step 실행 중에 발생한 정보들을 저장하고 있는 객체BATCH_STEP_EXECUTION 테이블과 매핑된다. StepExecution 객체는 Step 이 매번 시도될 때마다 각 Step 별로 생성되며 JobRepository 를 통해 저장됩니다. 이를 통해 실행 중인 Step의 정보를 추적하고, 필요한 경우 실행을 재개하거나 롤백할 수 있습니다. Job 이 재시작 하더라도 이미 성공적으로 완료된 Step 은 재 실행되지 않고 실패한 Step 만 실행됩니다. 이전 단계 Step 이 실패해서 현재 Step 을 실행하지 않는다면 StepExecetoin 객체를 생성하지 않는다. StepExecution 인터페이스public interface StepExecution { public long getStepExecutionId(); public String getStepName(); public BatchStatus getBatchStatus(); public Date getStartTime(); public Date getEndTime(); public String getExitStatus(); public Serializable getPersistentUserData(); public Metric[] getMetrics();}

0

Spring Batch - 08. Step

출처 해당 포스트는 정수원 강사님의 스프링 배치 - 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 Step Batch Job 을 구성하는 독립적인 하나의 단계로서 실제 배치 처리를 정의하고 컨트롤하는 데 필요한 모든 정보를 가지고 있는 도메인 객체 단순한 단일 테스크 뿐 아리나 입력, 처리 그리고 출력과 관련된 복잡한 비즈니스 로직을 포함하는 모든 설정들을 담고 있다. 배치 작업을 어떻게 구성하고 실행할 것인지 Job 의 세부 작업을 Task 기반으로 설정하고 명세해 놓은 객체 모든 Job 은 하나 이상의 step 으로 구성된다. Step은 하나 이상의 Batch 작업을 수행하는 논리적인 단위입니다. 각 Step은 하나의 Tasklet 또는 하나 이상의 Reader, Processor 및 Writer 구성 요소를 포함할 수 있습니다. Reader는 데이터 소스에서 데이터를 읽고 Processor는 읽어온 데이터를 가공하고 Writer는 가공된 데이터를 결과 저장소에 씁니다. 이러한 구성 요소는 일련의 스텝으로 연결되어 Batch 작업의 흐름을 제어합니다. Step은 각 스텝의 실행 전/후에 수행해야 할 작업을 처리하기 위한 Tasklet도 지원합니다. 예를 들어, 스텝이 실행되기 전에 데이터베이스 테이블을 비워야 하는 경우, 이러한 작업을 Tasklet에 포함시킬 수 있습니다. Spring Batch는 스텝 간에 데이터를 공유하는 방법도 제공합니다. 이를 통해 하나의 스텝이 처리한 결과를 다음 스텝에서 사용할 수 있습니다.