Cron표현식이 뭐길래
신규로 맡은 프로젝트의 코드분석 중 크론표현식을 만났다.
크론표현식을 한 번 공부한 적이 있어서 당연히 술술 읽힐 줄 알았는데 웬걸… 기억이 나질않았다.
역시 안다고 생각하는 것과 아는 것은 다르다.
이참에 포스팅을 통해 확실히 내 것으로 만들어야겠다.
개념
Cron 표현식은 스케줄러 시간을 세팅할 때 주로 사용되는 표현식으로 7개의 필드를 띄어쓰기로 구분한다.
연도는 생략가능하다!
형태
시간을 나타내는 표현식인만큼 필드를 외우기는 참 쉽다!
1 | <초> <분> <시> <일> <월> <요일> <년> |
각 필드마다 허용되는 값과 허용되는 특수문자가 다르다. 각 특수문자의 의미도 알아둬야한다!
필드 | 필수여부 | 허용되는 값 | 허용되는 특수문자 |
---|---|---|---|
초 | Y | 0-59 | , - * / |
분 | Y | 0-59 | , - * / |
시간 | Y | 0-23 | , - * / |
일 | Y | 1-31 | , - * ? / L W C |
월 | Y | 0-11 or JAN-DEC | , - * / |
요일 | Y | 1-7 or SUN-SAT or sun-sat | , - * ? / L C # |
년 | N | empty or 1970-2099 | , - * / |
특수문자의 의미
특수문자 | 의미 |
---|---|
* |
모든 값 |
? | 특정한 값이 없음 |
- | 범위 지정 |
, | 여러 값을 지정 |
/ | 증가하는 값을 지정(초기값/증가값) |
L | 마지막 값 지 |
W | 가장 가까운 평일 |
# | 몇 번째 무슨 요일인지 지정 |
예시
1 | 0 30 13 * * ? |
사실 가장 쉬운 방법은 cronmaker사이트를 이용하면된다.