cli에서 job parameter를 전달한다.
spring batch를 실행하는 방법은 크게 두 가지가 있다.
(1) cli나 launcher.run을 통해 외부 요청으로 on-demand로 실행하는 방법
(2) @Schudled 어노테이션에 스케쥴 정보를 입력하여 일정 주기로 실행하는 방법
스케줄과 실행을 외부에 위임할 수도 있다.
cli를 이용해서 실행하도록 할 때는 @Schudled를 없애고 cli 명령어를 이용한다. 그리고 cli에서 job parameter 또한 입력하도록 한다.
launch configuration → Modify options → Program arguments 클릭
environment로 전달하면 스프링 부트 파라미터로 처리되어 프로그램에서 자바 파라미터로 인식하지 않으므로 주의!
추가된 칸에 입력할 파라미터 param1=value1 형태로 입력 (requestDate=20231127)
실행할 job name과 job pareameter를 입력해준다.
java jar my-application.jar --job.name=someJob requestDate=20230101
💡 어떤 경우에 파라미터에 대시를 두 번 붙이고 어쩔 땐 아무것도 안붙일까?
- java 파라미터는 대시를 붙이지 않는다.
requestDate=20230101
- jvm 파라미터는 대시를 한번 붙이고 D를 붙여준다.
-Xms2G
-Xmx5G
- spring boot 환경변수 파라미터는 대시를 두 번
--job.name=someJob
대시를 붙이지 않고 그냥 적어주면 자바에서 실행하는 것과 동일하게 파라미터를 전달할 수 있다.
docker run 0****0.dkr.ecr.ap-northeast-2.amazonaws.com/my-application:latest-dev --job.name=someJob requestDate=20230101