프로젝트/스프링 배치 튜토리얼
-
Spring Batch Skip Policy프로젝트/스프링 배치 튜토리얼 2023. 10. 12. 00:01
개요 Spring Batch를 실행하다가 예외가 발생하면 어떻게 되는지 알아보고, 안정적인 Batch Application을 만들기 위해서 어떤 방안이 있는지 알아보고자 합니다. 예외가 간헐적으로 발생하는 Batch Application 구성 @Profile("skip-job") @Configuration class SkipJobConfig( private val jobRepository: JobRepository, private val batchTransactionManager: PlatformTransactionManager, ) { @Bean fun skipJob(): Job { return JobBuilder("skipJob job", jobRepository) .incrementer(RunIdI..
-
Spring Batch 데이터베이스와 함께 사용하기프로젝트/스프링 배치 튜토리얼 2023. 10. 11. 00:01
개요 지난 글에서는 Job을 만들고 메모리에서 값을 생성해 내고 log를 write 해내는 방식으로 작업을 수행하였습니다. 이번글에서는 Database와 연동하여 값을 읽고 쓰는 작업을 수행해보고자 합니다. Gradle Dependencies 추가 dependencies { implementation ("org.springframework.boot:spring-boot-starter-data-jpa") } jpa 관련 의존성을 추가해주었습니다. TestEntity, TestRepository 세팅 및 데이터 생성 @Table(name = "test_table") @Entity class TestJpaEntity( @Id val id: UUID = UUID.randomUUID(), @Enumerated(E..
-
Spring Batch 프로젝트 생성하기 - Spring Boot 3.1프로젝트/스프링 배치 튜토리얼 2023. 10. 9. 00:01
개요 Spring Boot가 3.0이 출시되면서 Batch도 조금 바뀌게 되어 프로젝트를 생성 및 간단한 실행을 수행해보고자 합니다. Gradle Dependencies dependencies { implementation("org.springframework.boot:spring-boot-starter-batch") runtimeOnly("org.postgresql:postgresql:42.3.5") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.springframework.batch:spring-batch-test") implementation(project(":core")) ..
-
SpringBatch Cursor 기반 vs Paging 기반프로젝트/스프링 배치 튜토리얼 2023. 2. 7. 00:01
개요 SpringBatch의 ItemReader에 Cursor기반, Paging 기반이 존재한다는 것을 알게 되었습니다. 각각은 어떤 것인지 찾아보고 더 적합한 것을 적용해보고자 합니다. Spring Batch의 ItemReader Spring Batch의 Chunk Tasklet은 아래와 같은 과정을 통해 진행됩니다. Spring Batch의 ItemReader는 데이터를 읽어들입니다. 꼭 DB의 데이터만을 이야기하는 것은 아니며 File, XML, JSON 등 다른 데이터 소스를 배치 처리의 입력으로 사용할 수 있습니다. 보통 Spring Batch에서 쓰이는 itemReader로서 가장 대표적인 구현체로 JdbcPagingItemReader가 있습니다. 해당 클래스의 계층 구조는 다음과 같습니다. ..
-
Spring Batch 프로젝트 생성하기 - Spring Boot 2.7.5프로젝트/스프링 배치 튜토리얼 2023. 2. 5. 00:01
프로젝트 생성하기 Generate로 프로젝트를 생성하고 압축을 풀어줍니다. Intellij에서 프로젝트 시작하기 파일 -> 열기 -> 압축 푼 프로젝트 경로 -> build.gradle.kts 열기 Simple Job 생성하기 @SpringBootApplication @EnableBatchProcessing class BatchApplication fun main(args: Array) { runApplication(*args) } Spring Batch 기능 활성화 어노테이션 EnableBatchProcessing을 추가합니다. job 패키지 성상 및 SimpleJobConfiguration 파일 생성 import org.springframework.batch.core.Job import org.spr..
-
Spring Batch란?프로젝트/스프링 배치 튜토리얼 2023. 2. 4. 00:01
Spring Batch 공식문서 https://docs.spring.io/spring-batch/docs/current/reference/html/ Spring Batch - Reference Documentation Welcome to the Spring Batch reference documentation! This documentation is also available as single html and pdf documents. The reference documentation is divided into several sections: The following appendices are available: Lucas Ward, Dave Syer, Thomas docs.spring.io Sprin..