어플리케이션 내에서 스케쥴링 해야하는 일이 생긴다.
스프링부트에서 사용하려명 Main 클래스에 @EnableScheduling 을 추가해주면 된다.
@Component
public class Scheduler {
@Scheduled(fixedDelay = 3000)
public void excute() {
System.out.println("스케쥴러");
}
}
위의 코드는 3초마다 실행이 된다.
fixedDelay 는 스케쥴러가 끝나고 3초이고, fixedRate 는 3초마다 주기적으로 실행을 한다는 의미이다.
끝나는 시점이 중요하면 fixedDelay 를 사용해야 한다.
그리고 크론탭과 같은 문법 사용이 가능하다.
ex)
@Scheduled(cron="*/30 * * * * *")
시간 설정 @scheduled(cron=" ") * 리눅스 crontab 과 같은 설정방법
ex> @Scheduled(cron="0 0 02 * * ?") = 매일 새벽2시에 실행
ex> @Scheduled(cron="0 0 02 2,20 * ?") = 매월 2일,20일 새벽2시에 실행
시간 설정 @scheduled(cron=" ") * 리눅스 crontab 과 같은 설정방법
ex> @Scheduled(cron="0 0 02 * * ?") = 매일 새벽2시에 실행
ex> @Scheduled(cron="0 0 02 2,20 * ?") = 매월 2일,20일 새벽2시에 실행
스케쥴러 cron 양식
초 0-59 , - * /
분 0-59 , - * /
시 0-23 , - * /
일 1-31 , - * ? / L W
월 1-12 or JAN-DEC , - * /
요일 1-7 or SUN-SAT , - * ? / L #
년(옵션) 1970-2099 , - * /
* : 모든 값
? : 특정 값 없음
- : 범위 지정에 사용
, : 여러 값 지정 구분에 사용
/ : 초기값과 증가치 설정에 사용
L : 지정할 수 있는 범위의 마지막 값
W : 월~금요일 또는 가장 가까운 월/금요일
# : 몇 번째 무슨 요일 2#1 => 첫 번째 월요일
예제) Expression Meaning
초 분 시 일 월 주(년)
"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
'Spring > spring boot 및 기타' 카테고리의 다른 글
[SPRING] kafka Error registering AppInfo mbean - 스프링부트 카프카 (0) | 2020.11.03 |
---|---|
[SPRING] 몽고 DB @Field 없을때 오류 org.springframework.data.mapping.PropertyReferenceException: No property log found for type (0) | 2020.10.26 |
vscode 로 스프링부트 실행하기 (0) | 2020.09.18 |
[spring boot] mongodb 연결 및 _class 삭제 (5) | 2020.09.09 |
[spring] spring boot 초기 구동 시키기 및 초기화 코드 (0) | 2020.08.29 |