스케쥴러에 사용되는 Cron표현식

Daniel·2023년 3월 15일
0

기본

@Scheduled(cron = " * * * * * * ")

문자열[0] : 초(0-59)

문자열[1] : 분(0-59)

문자열[2] : 시간(0-23)

문자열[3] : 일(1-31)

문자열[4] : 월(1-12)

문자열[5] : 요일(0-7)

0,7 : 일요일, 1 : 월, 6 : 토

문자열 의미

" * " : 모든조건(ALL)을 의미 합니다.

" ? " : 설정 값 없을 때(어떠한 값이든 상관없습니다.) 다만 날짜와 요일에서만 사용가능 합니다.

" - " : 범위값을 지정할 때 사용 합니다.

" , " : 여러값을 지정할 때 사용 합니다.

" / " : 초기값과 증가치를 설정할 때 사용 합니다.

" L " : 마지막 - 지정할 수 있는 범위의 마지막 값 설정할때 사용 가능 합니다. 그리고 날짜와 요일에서만 사용 가능 합니다.

" W " : 가장 가까운 평일 찾는다 (일) 에서만 사용가능

" # " : 몇주 째인지 찾는다 (요일) 에서만 사용가능 합니다.

예제)

  • 매월 10일 오전 11시
cron = "0  1  1  10  *  *"
  • 매일 오후 2시 5분 0초
cron = "0  5  14  *  *  *"
  • 10분마다 도는 스케줄러 : 10분 0초, 20분 0초...
cron = "0  0/10  *  *  *"
  • 조건에서만 실행되는 스케줄러 : 10분 0초, 11분 0초 ~ 15분 0초까지 실행
cron = "0  10-15  *  *  *"
  • 5분 마다 실행 예) 00:05, 00:10. 00:15
cron = "0 0/5 * * * *"
  • 1시간 마다 실행 예) 01:00, 02:00, 03:00
cron = "0 0 0/1 * * *"
  • 매일 오후 18시마다 실행 예) 18:00
cron = "0 0 18 * * *"
  • 2018년도만 매일 오후 18시마다 실행 합니다. 예) 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 * ?"

주의사항)

스프링 부트 에서만 지정가능한 문자열 6개임 다른 곳에서는 7개 쓴다고 한다.

profile
응애 나 애기 개발자

0개의 댓글