티스토리 뷰

Springboot 환경이 보편화가 되고 많은 부분들이 편해졌고 필자는 Batch가 엄청나게 편해진것 같다. 많이 사용해서 그런것 같다. 왜 Springboot Batch가 좋은지에 대해서는 이 글에서 다룬적이 있다. 그리고 빌드 및 실행방법에 대해서는 예전 xml config 기반의 Spring Batch 환경 구성하는 포스팅에서 다룬적이 있었지만 Springboot 기반의 환경에서는 어떻게 하는지 살펴보자. 아주 간단하다. 


일단 빌드에 앞서 springboot의 main 클래스를 살펴보자. 

import java.util.ArrayList;
import java.util.List;

import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableBatchProcessing
@SpringBootApplication
public class BatchProcessingApplication {

    public static void main(String[] args) throws Exception {
        List<String> params = new ArrayList<>();
        for(String key : args){
            params.add(key);
        }
        
        params.add("requestDate="+System.currentTimeMillis());
        
        System.exit(SpringApplication.exit(SpringApplication.run(BatchProcessingApplication.class, params.toArray(new String[0]))));
    }
}

main 클래스에서 param에 requestDate 라는 값을 넣어서 항상 실행할때마다 param이 변경이 되도록 처리를 했다. param 값이 이런식으로 매번 변경이 되어야 서로 다른 Job으로 인식이 되어 계속 실행을 해볼 수 있다. 이런 방식이 싫다면 나중에 jar를 실행할 때 이런 값을 직접 넣어주면 된다. 

 

springboot batch build

 

springboot batch build

 

springboot batch를 build 할때는 maven 구조의 프로젝트면 위와 같이 Maven install을 하여 진행한다. package로 빌드된 파일을 얻을수도 있지만 우클릭할때 보이는건 install이라 그냥 이걸로 빌드를 한다. 

 

 

jar파일 생성

 

빌드가 완료되면 위와 같이 target 폴더 혹은 maven repository에서 jar파일을 찾을 수 있다. Batch를 실행시키기 위해서는 이 파일을 실행시키면 된다. 해당 파일이 있는 실제 공간으로 가서 cmd 혹은 powershell을 열어준다. 

 

springboot batch run

 

 

batch jar 파일

 

파일을 확인 했으면 이 jar파일을 실행시키면 된다. 

> java -jar batch-process-0.0.1-SNAPSHOT.jar --job.name=sampleTaskletJob

실행시킬 job을 --job.name 뒤에 붙여서 실행을 하면 된다. 

 

 

springboot batch 실행화면

 

실행이 정상적으로 된다면 위와 같은 로그가 출력되면서 Batch job을 수행하게 된다. 

 

끝!

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31