스프링 스케줄 설정 법
@SpringBootApplication
@EnableScheduling
public class Scheduler {
@Scheduled(cron = "10 * * * * *")
public void run() {
// TODO
System.out.println("현재 시간은 " + new Date());
}
}
|
cs |
클래스 위에 @EnableScheduling 어노테이션을 설정 해 줍니다.
그리고 실제 사용할 자바 매소드 위에
예시)
@Scheduled(cron = "10 * * * * *")
이런식으로 설정해 줍니다.
결과: 이렇게 아래처럼 매분 10초마다 스케줄러 도는것을 볼 수 있습니다.
CRON 표현식
스케줄러의 경우 매소드위에 @Scheduled(cron = "10 * * * * *") 이런식으로 어노테이션을 작성해 줍니다.
그럼 CRON 표현식을 살펴 보겠습니다.
* : 모든조건(ALL)을 의미 합니다.
? : 설정 값 없을 때(어떠한 값이든 상관없습니다.) 다만 날짜와 요일에서만 사용가능 합니다.
-(하이픈) : 범위값을 지정할 때 사용 합니다.
,(콤마) : 여러값을 지정할 때 사용 합니다.
/(슬러시) : 초기값과 증가치를 설정할 때 사용 합니다.
L : 마지막 - 지정할 수 있는 범위의 마지막 값 설정할때 사용 가능 합니다. 그리고 날짜와 요일에서만 사용 가능 합니다.
W : 가장 가까운 평일 찾는다 - 일 에서만 사용가능
예) 10W
-10일이 평일 일 때 : 10일에 실행
-10일이 토요일 일 때 : 가장 가까운 평일인 금요일(9일)에 참
-10일이 일요일 일 때 : 가장 가까운 평일인 월요일(11일)에 참
# : 몇주 째인지 찾는다 - 요일 에서만 사용가능 합니다.
ex) 3#2 : 수요일#2째주 에 참
예제)
1) 매월 10일 오전 11시
cron = "0 1 1 10 * *"
2) 매일 오후 2시 5분 0초
cron = "0 5 14 * * *"
3) 10분마다 도는 스케줄러 : 10분 0초, 20분 0초...
cron = "0 0/10 * * *"
4) 조건에서만 실행되는 스케줄러 : 10분 0초, 11분 0초 ~ 15분 0초까지 실행
cron = "0 10-15 * * *"
5) 5분 마다 실행 예) 00:05, 00:10. 00:15
cron = "0 0/5 * * * *"
6) 1시간 마다 실행 예) 01:00, 02:00, 03:00
cron = "0 0 0/1 * * *"
7) 매일 오후 18시마다 실행 예) 18:00
cron = "0 0 18 * * *"
8) 2018년도만 매일 오후 18시마다 실행 합니다. 예) 18:00
cron = "0 0 18 * * * 2018"
9) 매일 오후 18시00분-18시55분 사이에 5분 간격으로 실행 ex) 18:00, 18:05.....18:55
cron = "0 0/5 18 * * *"
10) 매일 오후 9시00분-9시55분, 18시00분-18시55분 사이에 5분 간격으로 실행 합니다.
cron = "0 0/5 9,18 * * *"
11) 매일 오후 9시00분-18시55분 사이에 5분 간격으로 실행 합니다.
cron = "0 0/5 9-18 * * *"
12) 매달 1일 00시에 실행 합니다.
cron = "0 0 0 1 * *"
13) 매년 3월내 월-금요일 10시 30분에만 실행 합니다.
cron = "0 30 10 ? 3 MON-FRI"
14) 매월 마지막날 저녁 10시에 실행 합니다.
cron = "0 0 10 L * ?"
'프로그래밍 > 스프링(spring)' 카테고리의 다른 글
[Spring] Model,ModelMap vs ModelAndView 차이점 (0) | 2021.07.18 |
---|---|
[spring] 스프링 세션(session) 생성 및 값 세팅 방법 (2) | 2021.07.12 |
스프링부트(Spring Boot) 정적 리소스 설정 (0) | 2021.01.01 |
부트대시보드(Boot Dashboard) 서버포트 변경방법 (0) | 2020.12.28 |
댓글