Leon Chaewon Kong's dev blog

cron 표현식 정리

정기적으로 이벤트를 발생시키려면 어떻게 해야할까? ratecron을 쓰면 된다.

오늘은 cron을 사용해 매 30분마다 이벤트를 발생시키는 식을 만들어 보았다.

더불어, cron의 문법을 정리해본다.

cron 필드 위치 값의 의미 정리

30분 단위로 매일 실행되도록 cron 식을 짜면 아래와 같다.

0 0/30 * * * ? *

제일 왼쪽 필드부터 차근차근 무엇에 대한 필드인지 정리해봤다.

0 0/30 * * * ? *
요일 연도
0초 0분부터 매 30분 마다 매시 매일 매일 미정 매년

이렇게 구성된다.

표현식 정리

표현식 의미 예시
* 모든 값  
? 특정하는 값 없음  
- 범위 MON-WED 월요일부터 수요일
, 미리 정하는 몇몇 값 MON, WED, FRI
/ 시작시각/단위범위 0 0/30 * * * ? 0/30은 0분부터 매 30분 간격을 의미
L 해당 단위의 가장 끝 일에서 사용하면 마지막 일, 요일에서 사용하면 토요일
W 가장 가까운 평일 3W 3일에서 가장 가까운 평일(주말아님)
# n요일/m째주 3#2 수요일, 2번째주를 의미

6자리? 7자리?

6개의 필드(field)로 구성된 cron식도, 7개의 필드로 구성된 cron 식도 존재한다.

만약 필드가 6개라면 마지막 필드인 ‘연도’ 필드가 생략된 것이다. 스프링의 경우, 6개의 필드만 허용한다고 한다.

환경에 따라 허용되는 필드의 개수는 다를 수 있다.

단, 최소 6개의 필드를 가져야하며, 최대 7개의 필드보다 너 많은 필드를 가질 수 없다.

References