Spring Job Scheduler - Cron Expression
spring scheduler에 배치 셋팅하면서 cron표현식이 자꾸 헷갈려서 정리함.
Cron Expression
- 크론작업은 반복되는 주기로 예약되며 unix-cron(
* * * * *
)형식으로 지정된다.(ex.매분 매시간 매일 매주 매달)
Option
?
: 조건없음 [일, 요일 에서만 사용가능]
*
: 모든 조건에서 참
- 시작시간/단위 (예 0/5) : 해당 시작시간부터 해당 단위때 참
- 시작범위-끝범위 (예 3-5) : 예제(3-5)는 3에서 5까지 (3, 4, 5) 조건일때 참.
- x,y,z… (예 1,3,5) : 예제(1,3,5) 1,3,5 일때만 참.
L
: [일, 요일 에서만 사용가능]
- 일에서 사용하면 : 예(L) 마지막 날짜입니다. 예를들어 1월이라면 31일 2월이라면 윤년에 따라 28혹은 29일 4월이라면 30일에 참.
- 요일에서 사용하면 : 예(6L) 6은(토요일) 마지막 토요일에 실행됩니다. 마지막주가 토요일이 없다면 그전주 토요일에 참.
W
: [일에서만 사용가능]
- 가장 가까운 평일(월~토)를 찾습니다.
- 15W 라고 설정했다면 15일이 월~금 범위라면 해당 날짜에서 참.
- 15W 15일이 토요일이라면 가장 가까운 금요일인 14일에 참.
- 15W 15일이 일요일이라면 가장 가까운 월요일인 16일에 참.
#
: [요일에서만 사용가능]
- 예를들어 3#2 라고 썻다면 (수요일#2번째주)라는 의미가 됩니다.
- 즉 2번째주의 수요일에 참이 됩니다.
Example
0 0/5 * * *
: 5분마다10 0/5 * * * ?
: 10초 뒤 5분마다 수행.0 30 10-13 ? * WED,FRI
: 매 주 수요일과 금요일 10시~13시 30분에 수행.0 15 10 ? * 6#3
: 매달 3번째 금요일 10시 15분에 실행0 0/30 8-9 5,20 * ?
: 매 월 5일과 20일에 8시~9시대에 30분 간격으로 수행. (8:00, 8:30, 9:00, 9:30) 수행
references
댓글남기기