스케쥴려 사용법

SeonKyum·2021년 12월 22일
0

백엔드 개념

목록 보기
10/23
  • 참고

[Spring] @Component 애노테이션 및 함께 사용하는 애노테이션 정리

@Scheduled 사용법, 스케줄러 커스터마이징을 통한 제어(+스케줄러에 등록한 작업 중지하는 방법, 배치 효과, 정확한 주기 작업 사용법)

1. 어노테이션 소개

  • Springframework 에서 제공하는 @Scheduled 어노테이션을 이용해 지정한 시간혹은 주기로 함수를 실행 할 수 있다.
  • 사용시에 class에 @Component 를 붙여서 빈으로 등록하여 Component Scan 을 당하게 한다.

2. 사용법

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

  • "초 분 시 일 월 주 (년)" 으로 표현한다.
  • ex. 30초마다 실행 @Scheduled( cron="/30 * * * *" )
  • 예제

초 분 시 일 월 주(년)

"0 0 02 * * ?" : 매일 새벽 두시

"0 0 12 * * ?" : 아무 요일, 매월, 매일 12:00:00

"0 15 10 ? * *" : 모든 요일, 매월, 아무 날이나 10:15:00

"0 15 10 * * ?" : 아무 요일, 매월, 매일 10:15:00

"0 15 10 * ? " : 모든 연도, 아무 요일, 매월, 매일 10:15

"0 15 10 * * ? : 2005" 2005년 아무 요일이나 매월, 매일 10:15

"0 14 * ?" : 아무 요일, 매월, 매일, 14시 매분 0초

"0 0/5 14 * * ?" : 아무 요일, 매월, 매일, 14시 매 5분마다 0초

"0 0/5 14,18 * * ?" : 아무 요일, 매월, 매일, 14시, 18시 매 5분마다 0초

"0 0-5 14 * * ?" : 아무 요일, 매월, 매일, 14:00 부터 매 14:05까지 매 분 0초

"0 10,44 14 ? 3 WED" : 3월의 매 주 수요일, 아무 날짜나 14:10:00, 14:44:00

"0 15 10 ? * MON-FRI" : 월~금, 매월, 아무 날이나 10:15:00

"0 15 10 15 * ?" : 아무 요일, 매월 15일 10:15:00

"0 15 10 L * ?" : 아무 요일, 매월 마지막 날 10:15:00

"0 15 10 ? * 6L" : 매월 마지막 금요일 아무 날이나 10:15:00

"0 15 10 ? * 6L 2002-2005" : 2002년부터 2005년까지 매월 마지막 금요일 아무 날이나 10:15:00

"0 15 10 ? * 6#3" : 매월 3번째 금요일 아무 날이나 10:15:00

'@Scheduled**(fixedRateString = "5", initialDelay = 3000)**'

  • fixedDelay : milliseconds 단위로, 이전 작업이 끝난 시점으로 부터 고정된 시간을 설정한다. ex) fixedDelay = 5000
  • fixedDelayString : fixedDelay와 같은데 property의 value만 문자열로 넣는 것이다. ex) fixedDelay = "5000
  • fixedRate : milliseconds 단위로, 이전 작업이 수행되기 시작한 시점으로 부터 고정된 시간을 설정한다. ex) fixedRate = 3000
  • fixedRateString : fixedDelay와 같은데 property의 value만 문자열로 넣는 것이다. ex) fixedRate = "3000"
  • initialDelay : 스케줄러에서 메서드가 등록되자마자 수행하는 것이 아닌 초기 지연시간을 설정하는 것이다.
  • initialDelayString : 위와 마찬가지로 문자열로 값을 표현하겠다는 의미다.
  • zone : cron표현식을 사용했을 때 사용할 time zone으로 따로 설정하지 않으면 기본적으로 서버의 time zone이다.

fixedDelay vs fixedRate

profile
차근차근,,

0개의 댓글