티스토리 뷰

Server

특정 잡만 수행하고 싶을 때

니용 2022. 1. 10. 15:07
반응형

안녕하세요~ 이번에는 배치를 수행하면서 특정한 잡 1개만을 수행하고 싶을 때 수행하는 방법입니다. 

 

1. application.properties 에 아래와 같이 추가

spring.batch.job.names=${job.name:SampleJob}

 

2. 실행 옵션을 변경 

java -Dserver.port=8081 -Duser.timezone=Asia/Seoul -Dspring.profiles.active=cron -jar *.jar --job.name=SampleJob

* 여기서 맞추셔야 할 부분은 

  1. port는 수행하실 포트 번호로 수행해주세요.
  2. profile 이 cron 인 경우 위와 같이 실행해줍니다. 프로파일이 변경되면 -Dspring.profiles.active=${profile} 로 다른 변수를 넣어주세요!
  3. --job.name 에는 1. 에서 넣어준 JobName을 넣어줍니다.
  4. 추가적으로 파라미터가 에러가 같다고 문제가 발생하면 실행하는 스크립트에 아래와 같이 넣어줍니다.  

 

today=`date +%Y-%m-%d%H:%M:%S`
echo $today

java -Dserver.port=8081 -Duser.timezone=Asia/Seoul -Dspring.profiles.active=cron -jar *.jar --job.name=SampleJob currentDate=%today

위에서는 today 변수를 생성해서 시작하는 타임에 맞게 변수에 세팅해주고 배치를 시작하는 파라미터를 넣어준 방법입니다. 이렇게 되면 배치가 수행되고 있는 와중에 정지가 되어 다시 실행시킬 때의 충돌을 방지해주는 역할을 합니다.

 

날짜의 포맷팅: https://codechacha.com/ko/shell-script-date-and-time/

 

Bash Shell Script - 날짜, 시간 가져오기

Bash shell script에서 날짜, 시간을 가져오는 방법을 알아보겠습니다. 다음 코드들은 date의 실행 결과를 today 변수에 저장합니다. quotes(\`) 또는 `$`를 사용하는 방법 중에 하나를 선택하시면 됩니다.

codechacha.com

 

반응형
댓글
공지사항