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사이트를 이용하면된다.
![[OS/WINDOW]배포후 서버재시작에 batch와 윈도우 스케줄러 활용하기](https://cdn.pixabay.com/photo/2012/03/04/00/50/board-22098_960_720.jpg)
![[블로그]헥소테마에서 댓글기능 facebook에서 utterances로 변경하기](https://miro.medium.com/max/1600/1*aOv6h3h_v9PQWa03zGACnw.png)