Spring Batch - 배치 설정 (application.properties)

배치 잡의 실행 여부를 설정

# Spring Boot 가 자동으로 실행시키는 Batch Job 을 실행시키도록 한다.
spring.batch.job.enabled: true # default
# Spring Boot 가 자동으로 실행시키는 Batch Job 을 실행하지 않도록 한다.
spring.batch.job.enabled: false

배치 잡의 재시작 여부를 설정

# 기본이 true, 재시작을 허용한다.
spring.batch.job.restartable: true
# 재시작을 허용하지 않는다
spring.batch.job.restartable: false

실행할 배치 잡의 이름을 지정

스프링 배치는 실행시 기본적으로 모든 Job 을 실행시킵니다. spring.batch.job.names 를 이용해 지정 Job 만 실행하도록 설정할 수 있습니다.

프로그램 실행시 특정 Job 을 전달받아 실행시키고 싶을 경우 spring.batch.job.names: ${job.name:NONE} 로 설정하면 외부에서 주입받은 Job 이름을 이용해 실행시킬 수 있습니다. 만일 전달받은 값이 없으면 아무 Job 도 실행시키지 않습니다.

:NONE 은 프로퍼티 표현 중 하나로 전달받은 값이 없을 경우 NONE 으로 대체한다는 의미이다.

# Hard Coding 방식
spring.batch.job.names: springJob1
# Binding 을 사용한 방식
spring.batch.job.names: ${job.name:NONE}

실행시킬 Job 을 지정하는 방법

  • 어플리케이션 실행시 Program arguments 로 Job 이름 입력한다.
    • --job.name=helloJob
  • 하나 이상의 Job 을 실행할 경우 쉼표로 구분해서 입력 한다.
    • --job.name=helloJob,simpleJob

어플리케이션 실행시점에 Argument 로 넘겨서 Binding 되도록 한다.

인텔리제이에서 Program Argument 를 이용한 Job 실행

배치 메타 데이터 저장을 위한 테이블 스키마 자동 생성여부를 설정

spring.batch.jdbc.initialize-schema: always
spring.batch.jdbc.initialize-schema: embedded # default
spring.batch.jdbc.initialize-schema: never

배치 잡에서 생성되는 메타 데이터 테이블 Prefix 를 설정

spring.batch.jdbc.table-prefix:  DEMO

배치 잡에서 허용하는 실패 횟수를 설정

# 배치 잡에서 허용하는 실패 횟수를 설정한다. default: 3
spring.batch.job.failures-allowed: 3
Share