Quartz에서 사용하는 crontab 표현식을 알아보자(feat. Java Spring)
Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.
(ERROR CASE 내용 포함)
Quartz에서 사용하는 표현식은 아래와 같다.
//매일 새벽1시에 수행
@Scheduled(cron="0 0 1 * * ?")
* * * * * * * 6자리 혹은 7자리(year은 생략 가능)
초 분 시 일 월 요일 연도(생략가능)
[특수문자 표현]
* 아스테리스크 : ALL 모든값을 의미
? 물음표 : 특정값 없음
- 하이픈 : 값의 범위 지정
, 콤마 : 여러개의 값을 지정
/ 슬러시 : 초기값과 증가치를 지정
1-7 : 일요일~토요일까지 (1.일 2.월 3.화 4.수 5.목 6.금 7.토)
ex)
매일 새벽1시 실행
cron = "0 0 1 * * ?"
5분마다 실행
cron = "0 0/5 * * * ?"
2021년 10월 29일 1시에 실행
cron = "0 0 1 29 10 * 2021" 7자리
매년, 일요일에서 금요일까지(토 제외) 새벽2시에 실행
cron = "0 0 2 ? * 1-6 *"
(0초 0분 2시 요일값없음 매월 일요일~금요일 매년)
개발기에서 테스트중 스케줄러가 수행되지 않는다는 장애접수를 받아서 봤더니,
위와 같은 ERROR 메세지가 나타났다.
Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.
일자를 나타내는 4번째 필드와 요일을 나타내는 6번째 필드는 동시에 값을 지정할 수 없다는 Quartz의 ERROR 메세지이다.
따라서, 아래와 같이 마지막 요일 값을 ? 표로 변경하였다.
@Scheduled(cron="0 0 5 * * *") → ERROR 발생
@Scheduled(cron="0 0 5 * * ?") → 수정완료
빠잇!
본문 내용이 도움이 되셨다면, 아래의 공감버튼을 눌러주세요.
정보 공유를 위한 포스팅에 큰 힘이 됩니다.
만약 틀린 정보가 있으면 댓글 달아주세요. 수정하도록 하겠습니다.
읽어주셔서 감사합니다. 오늘도 좋은 하루 보내세요.
'JAVA' 카테고리의 다른 글
onClick , onkeydown 마우스클릭 / 엔터 이벤트 처리 (0) | 2022.01.14 |
---|---|
Log4j 취약점 (긴급조치) (0) | 2021.12.21 |
[JAVA] contains 함수의 재밌는 원리 (1) | 2021.10.28 |
[JAVA] Json key값 존재 여부 확인 .has() (0) | 2021.10.26 |
[Maven] 프로젝트에 Json lib 추가하기, Exception in thread "main" java.lang.NoClassDefFoundError: (0) | 2021.10.26 |