Spring task scheduler Cron Expression 크론 표현식
Spring task scheduler Cron Expression 크론 표현식
이번 포스팅에서는 매번 해깔리는 크론 표현식에 대해 자세히 알아보도록 하겠습니다.
크론 표현식이 사용되는 Spring task scheduler 에 대해서는 아래의 Link를 참고하세요.
Link : 주기적 클래스 실행하는 방법 자동실행 일정간격 스케쥴링 JAVA Spring task scheduler
Link : https://aljjabaegi.tistory.com/433
스케쥴링에 대한 내용은 위의 링크에서 확인 하는 걸로 하고,
여기서는 Cron 표현식에 대해서만 알아보도록 하겠습니다.
크론 표현식에서는 6~7 자리 가 사용됩니다.
cron = "* * * * * *"
* * * * * * *
초 분 시 일 월 요일 년도(생략가능)
이라고 생각하시면 됩니다.
여기서 요일은 0-7, SUN-SAT 로 표현 가능합니다.
(0:일, 1:월, 2:화, 3:수, 4:목, 5:금, 6:토, 7:일 입니다. 0,7 모두 일요일) /*2022.04.18 수정!*/
위의 예에서 *(아스타)는 ALL(모든) 것을 의미 합니다.
이 외에도
?(물음표) : 특정값이 없을 때(어떤값이든 상관X), 날짜와 요일에만 사용가능
-(하이픈) : 범위값을 지정할 때
,(콤마) : 여러 값을 지정할 때
/(슬러시) : 초기값과 증가치 설정할 때
L(대문자 엘) : 지정할 수 있는 범위의 마지막 값 설정할 때, 날짜와 요일에만 사용가능
W(대문자 더블유) : 월~금요일 또는 가장 가까운 월,금요일을 설정할 때
#(샵) : 몇번째 특정요일을 설정할 때
가 있습니다.
그럼 위와 같은 기본적인 지식을 가지고 자주 사용되는 크론 표현식의 예를 보도록 하죠.
<!-- 5분 마다 실행 ex) 00:05, 00:10. 00:15.... -->
cron = "0 0/5 * * * *"
<!-- 1시간 마다 실행 ex) 01:00, 02:00, 03:00.... -->
cron = "0 0 0/1 * * *"
<!-- 매일 오후 18시마다 실행 ex) 18:00 -->
cron = "0 0 18 * * *"
<!-- 2018년도만 매일 오후 18시마다 실행 ex) 18:00 -->
cron = "0 0 18 * * * 2018"
<!-- 매일 오후 18시00분-18시55분 사이에 5분 간격으로 실행 ex) 18:00, 18:05.....18:55 -->
cron = "0 0/5 18 * * *"
<!-- 매일 오후 9시00분-9시55분, 18시00분-18시55분 사이에 5분 간격으로 실행 -->
cron = "0 0/5 9,18 * * *"
<!-- 매일 오후 9시00분-18시55분 사이에 5분 간격으로 실행 -->
cron = "0 0/5 9-18 * * *"
<!-- 매달 1일 00시에 실행 -->
cron = "0 0 0 1 * *"
<!-- 매년 3월내 월-금요일 10시 30분에만 실행 -->
cron = "0 30 10 ? 3 MON-FRI"
<!-- 매월 마지막날 저녁 10시에 실행 -->
cron = "0 0 10 L * ?"
예를 보시면 이해가 되실 것으로 생각됩니다.