티스토리 뷰

Server

Spring Batch 실행 명령어

니용 2022. 3. 13. 11:38
반응형

오늘은 젠킨스(Jenkins)에서 주로 사용하는 Spring Batch의 실행 커맨드 Script를 작성해볼까 합니다. 우선 아래와 같이 통짜 명령어를 먼저 살펴본 후 이것이 어떤 의미를 갖는지 살펴보겠습니다.

java -jar 
   -Dspring.profiles.active=batch 
   ${BATCH_JAR_HOME}/batch-1.11.3.jar 
   --job.name=jenkinsRunnerJob 
   baseDate=${baseDate} 
   version=${VERSION}

1. java -jar

쉽게 말해 자바 명령어를 사용해 jar 파일을 실행한다는 옵션입니다. 

 

2. -Dspring.profiles.active

자바 프로젝트는 application-${profile}.yaml 또는 .properties로 프로파일을 각 설정별로 지정할 수 있습니다. 위에서 사용한 프로파일의 이름은 'batch' 이고 이럴 때 동작하는 프로파일의 파일은 application-batch.yaml 파일이 될 수 있습니다.

 

3. ${BATCH_JAR_HOME} 

BATCH_JAR_HOME 이라는 이름을 가진 변수가 위에서 선언되어 있는 경우 스크립트로 아래에서 사용이 가능하도록 부여합니다. 표현하는 방법은 어렵지 않습니다. 

BATCH_JAR_HOME = "/home/ubuntu/batch"
baseDate='yyyy-mm-dd'
version='1.11.3'
// Java Source Mapping 
// String BATCH_JAR_HOME = "/home/ubuntu/batch";
// String baseDate = LocalDate.parse(baseDate2, DateFormatter.ofPattern("yyyy-MM-dd"));
// String version = "1.11.3";

 

보통 대문자로 사용하는 값들은 환경 변수로 이미 지정이 되어 있는 내용들입니다. 위에서 사용하는 소문자 이름의 변수들 (baseDate, verision) 은 주로 Job Parameter 로 사용하는 내용입니다. 이 값들은 실행시킬 때마다 다른 파라미터를 넣어주어야하고 Job 소스 내의

@Value("#{jobParameters[baseDate]}") String baseDate

와 같이 사용할 때 주로 씁니다.

 

4. ${BATCH_JAR_HOME}/batch-1.11.3.jar

해당 jar 파일을 실행시키는 옵션입니다.

 

5. --job.name

Spring Batch에서 여러개의 잡이 있는 경우 특정 잡만 실행시키는 옵션입니다. --job.name=abcJob,defJob 로 옵션을 설정하면 두 개의 Job을 실행시키게 되고 이 옵션에 들어가는 잡의 이름은 @Bean(name = "abcJob")으로 선언이 되어 있는 경우 매핑되는 잡입니다.

반응형
댓글
공지사항