티스토리 뷰
반응형
안녕하세요~ 이번에는 배치를 수행하면서 특정한 잡 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
* 여기서 맞추셔야 할 부분은
- port는 수행하실 포트 번호로 수행해주세요.
- profile 이 cron 인 경우 위와 같이 실행해줍니다. 프로파일이 변경되면 -Dspring.profiles.active=${profile} 로 다른 변수를 넣어주세요!
- --job.name 에는 1. 에서 넣어준 JobName을 넣어줍니다.
- 추가적으로 파라미터가 에러가 같다고 문제가 발생하면 실행하는 스크립트에 아래와 같이 넣어줍니다.
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/
반응형
'Server' 카테고리의 다른 글
[Java] JPA Detached Entity passed to persist 에러 해결 로그 (2) | 2022.02.14 |
---|---|
[Java] Rest Template 을 사용하여 API 통신하기 (1) | 2022.02.07 |
[Java] Encode, Decode 함수 사용하기 (4) | 2022.02.04 |
Job & Step 병렬 처리 하기 (2) | 2022.01.05 |
[Java] Stream GroupBy 사용하기 (2) | 2021.12.30 |
Spring Batch Job Repository (1) | 2021.12.30 |
댓글
공지사항