Programing/Spring

Spring task scheduler Cron Expression 크론 표현식

리커니 2018. 6. 26. 13:28
반응형

Spring task scheduler Cron Expression 크론 표현식

 

 

이번 포스팅에서는 매번 해깔리는 크론 표현식에 대해 자세히 알아보도록 하겠습니다.

크론 표현식이 사용되는 Spring task scheduler 에 대해서는 아래의 Link를 참고하세요.

 

Link : 주기적 클래스 실행하는 방법 자동실행 일정간격 스케쥴링 JAVA Spring task scheduler

 

주기적 클래스 실행하는 방법 자동실행 일정간격 스케쥴링 JAVA Spring task scheduler

주기적 클래스 실행하는 방법 자동실행 일정간격 스케쥴링 JAVA Spring task scheduler 사용자가 뭔가 명령을 내리지 않아도 클래스를 자동 실행하고 싶을 때 사용하는 것이 Sping에 task scheduler 입니다. 몇시..

aljjabaegi.tistory.com

Link : https://aljjabaegi.tistory.com/433 

 

Spring boot dynamic scheduling quartz, 동적 스케쥴링 동적 cron

Spring boot dynamic scheduling quartz, 동적 스케쥴링 동적 cron Spring boot 에 Quartz 를 활용해 동적으로 스케쥴링이 되도록 구현하는 방법을 알아보겠습니다. [Spec] Spring boot 2.1.0 quartz 2.2.1 우선 Q..

aljjabaegi.tistory.com

 

 

스케쥴링에 대한 내용은 위의 링크에서 확인 하는 걸로 하고,

여기서는 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 * ?"

 

예를 보시면 이해가 되실 것으로 생각됩니다.

반응형