spring / / 2025. 10. 10. 06:37

[Spring Boot 번역] Batch Applications

Batch Applications

다음은 사람들이 Spring Boot 애플리케이션 내에서 Spring Batch를 사용할 때 자주 발생하는 여러 질문들입니다. 이 섹션에서는 이러한 질문들에 대해 다룹니다.

Specifying a Batch Data Source

기본적으로 배치 애플리케이션은 작업 세부 정보를 저장하기 위해 DataSource가 필요합니다. Spring Batch는 기본적으로 단일 DataSource를 예상합니다. 애플리케이션의 메인 DataSource가 아닌 다른 DataSource를 사용하도록 하려면 DataSource 빈을 선언하고, 해당 @Bean 메서드에 @BatchDataSource를 어노테이션으로 추가합니다. 이렇게 하고 두 개의 데이터 소스를 사용하려는 경우(예: 메인 자동 구성된 DataSource를 유지하는 경우), @Bean 어노테이션의 defaultCandidate 속성을 false로 설정하세요.

더 큰 제어권을 얻으려면 @Configuration 클래스 중 하나에 @EnableBatchProcessing을 추가하거나 DefaultBatchConfiguration을 확장하세요. 자세한 내용은 @EnableBatchProcessingDefaultBatchConfiguration의 API 문서를 참조하세요.

Spring Batch에 대한 자세한 정보는 Spring Batch 프로젝트 페이지를 참조하세요.

Specifying a Batch Transaction Manager

Specifying a Batch Data Source와 유사하게, 배치 처리에 사용할 PlatformTransactionManager를 정의하려면 해당 @Bean 메서드에 @BatchTransactionManager를 어노테이션으로 추가합니다. 이렇게 하고 두 개의 트랜잭션 매니저를 사용하려는 경우(예: 자동 구성된 PlatformTransactionManager를 유지하는 경우), @Bean 어노테이션의 defaultCandidate 속성을 false로 설정하세요.

Specifying a Batch Task Executor

Specifying a Batch Data Source와 유사하게, 배치 처리에 사용할 TaskExecutor를 정의하려면 해당 @Bean 메서드에 @BatchTaskExecutor를 어노테이션으로 추가합니다. 이렇게 하고 두 개의 task executor를 사용하려는 경우(예: 자동 구성된 TaskExecutor를 유지하는 경우), @Bean 어노테이션의 defaultCandidate 속성을 false로 설정하세요.

Running From the Command Line

Spring Boot는 --로 시작하는 모든 명령줄 인수를 Environment에 추가할 속성으로 변환합니다. 명령줄 속성 접근을 참조하세요. 이것은 배치 작업에 인수를 전달하는 데 사용되어서는 안 됩니다. 명령줄에서 배치 인수를 지정하려면 다음 예제와 같이 일반 형식(-- 없이)을 사용하세요:

$ java -jar myapp.jar someParameter=someValue anotherParameter=anotherValue

명령줄에서 Environment의 속성을 지정하면 작업에서 무시됩니다. 다음 명령을 고려해보세요:

$ java -jar myapp.jar --server.port=7070 someParameter=someValue

이것은 배치 작업에 단 하나의 인수만 제공합니다: someParameter=someValue.

Restarting a Stopped or Failed Job

실패한 Job을 재시작하려면 모든 파라미터(식별 및 비식별)를 명령줄에서 다시 지정해야 합니다. 비식별 파라미터는 이전 실행에서 복사되지 않습니다. 이를 통해 수정하거나 제거할 수 있습니다.

커스텀 JobParametersIncrementer를 사용하는 경우, 실패한 실행을 재시작하려면 incrementer가 관리하는 모든 파라미터를 수집해야 합니다.

Storing the Job Repository

Spring Batch는 Job 리포지토리를 위한 데이터 저장소가 필요합니다. Spring Boot를 사용하는 경우 실제 데이터베이스를 사용해야 합니다. 인메모리 데이터베이스일 수도 있습니다. Configuring a Job Repository를 참조하세요.


출처: https://docs.spring.io/spring-boot/4.0-SNAPSHOT/how-to/batch.html

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유