일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- docker
- 신입 개발자 자바 면접
- 자바 암호화 알고리즘
- 자바 암호화 복호화
- 플레이팅
- 신입 개발자 필수 면접 질문
- 프로그래머스
- 개발자 코딩테스트
- 도커
- 신입 개발자 면접
- 직장인점심구독
- 개발자 채용연계형인턴
- 식단
- .dockerignore
- Linux
- 개발자 면접
- 프로그래머스 코딩테스트
- Plating
- 식단일기
- 개발자 면접 질문
- 개발자 인턴
- docker image
- 신입 개발자 면접 질문
- 개발자 정규직
- 샐러드
- 신입 개발자 자바 면접 질문
- 자바 stream
- 코딩테스트 연습
- 자바 암호화
- 셰프의찾아가는구내식당
- Today
- Total
달리는 두딘
[JAVA] 크론 표현식 (Cron Expression) 정리 본문
Cron 표현식은 스케줄러 시간을 세팅할 때 사용된다.
필드는 총 7개이며, 연도는 생략가능하다.
Cron 표현식의 형태
<초> <분> <시> <일> <월> <요일> <년>
필드 | 허용되는 값 | 허용되는 특수문자 |
초 (Seconds) | 0~59 | , - * / |
분 (Minutes) | 0~59 | , - * / |
시 (Hours) | 0~23 | , - * / |
일 (Day of month) | 1~31 | , - * / L W |
월 (Month) | 1~12 또는 JAN ~ DEC | , - * / |
요일 (Day of week) | 0 ~ 6 또는 SUN ~ SAT | , - * / L # |
년 (Year) | 1970 ~ 2099 | , - * / |
특수문자
- * : 모든 값
- ? : 특정한 값이 없음
- - : 범위 지정
- , : 여러 값을 지정
- / : 증가하는 값을 지정 (초기값/증가값)
- L : 마지막 값 지정
- W : 가장 가까운 평일
- # : 몇 번째 무슨 요일인지 지정
참고사항
- 월과 요일의 이름은 대소문자를 구분하지 않는다. ex) MON / mon
- 연도를 설정하지 않은 경우 연도가 자동으로 결정된다.
현재 날짜와 비교하여 지정 날짜가 아직 지나지 않은 경우에는 현재 연도가 설정되며, 날짜가 이미 지난 경우에는 다음 연도로 설정된다.
- 일(Day of month)과 요일(Day of week) 필드는 동시에 지정될 수 없다. 지정하지 않는 필드에는 "?"를 세팅한다.
- 초(Seconds) 필드에 0/15가 세팅되어 있으면 0, 15, 30, 45초를 의미하며, 3/15가 세팅되어 있으면 3, 18, 33, 48초를 의미한다.
- 일(Day of month) 필드에서 L은 해당 월의 마지막 날을 의미하며, 요일 (Day of week) 필드에서 L은 해당 주의 마지막 날인 토요일을 의미한다. 단, 앞에 숫자가 붙을 경우 해당 월의 마지막 요일을 뜻한다.
ex) 6L : 해당 월의 마지막 금요일
- 15W : 해당 월의 15일에서 가장 가까운 평일
- FRI#3 또는 6#3 : 매월 3번째 금요일
예시
Cron 표현식 | 의미 |
0 10 * * * ? | 매 시각 10분 |
0 0/10 * * * ? | 매 10분마다 |
0 0 12 * * ? | 매일 오후 12시 |
0 15 10 * * ? | 매일 오전 10시 15분 |
0 15 10 * * ? 2021 | 2021년 동안 매일 오전 10시 15분 |
0 * 14 * * ? | 매일 오후 2시부터 2시 59분까지 1분마다 |
0 0/5 14 * * ? | 매일 오후 2시부터 2시 55분까지 5분마다 |
0 0/5 14, 18 * * ? | 매일 오후 2시부터 2시 55분까지 5분마다, 매일 오후 6시부터 6시 55분까지 5분마다 |
0 10,44 14 ? 3 WED | 3월 매주 수요일마다 오후 2시 10분, 오후 2시 44분 |
0 15 10 ? * MON-FRI | 매주 월요일부터 금요일까지 오전 10시 15분 |
0 15 10 15 * ? | 매월 15일 오전 10시 15분 |
0 15 10 L * ? | 매월 말일 오전 10시 15분 |
0 15 10 ? * 6L 2010-2021 | 2010년 ~ 2021년 동안 매월 마지막주 금요일 오전 10시 15분 |
0 15 10 ? * 6#3 | 매월 셋째주 금요일 오전 10시 15분 |
0 0 12 1/5 * ? | 매월 1일부터 매 5일마다 오후 12시 |
0 11 11 11 11 ? | 매년 11월 11일 오전 11시 11분 |
처음에 * 10 * * * ? 과 * 0/10 * * * ? 개념이 조금 헷갈려서 다시 적어보자면
* 10 * * * ? 는 매 시각 10분을 뜻해서 [1시 10분, 2시 10분. 3시 10분...] 이런 식으로 1시간마다 실행되는 반면에
* 0/10 * * * ? 는 10분마다 실행되는 것이므로 [1시 10분, 1시 20분, 1시 30분...] 이런 식으로 10분마다 실행된다.
출처
http://docwiki.embarcadero.com/Connect/en/Writing_a_CRON_Expression#Using_Special_Characters
'지식노트' 카테고리의 다른 글
[DB] 프로시저로 더미 데이터 넣기 (0) | 2022.10.14 |
---|---|
[JPA] 필드와 컬럼 매핑 - @Lob (0) | 2022.09.29 |
[JAVA] Stream - findAny()와 findFirst()의 차이점 (2) | 2022.09.06 |
[Spring] WebClient 사용법 (2) | 2022.09.05 |
[JAVA] Stream().filter, map, flatMap 사용 방법 및 예제 (2) | 2022.08.25 |