728x90
728x90
SpringBoot Scheduler Cron
스프링 스케줄 설정
@EnableScheduling
@SpringBootApplication
public class Application {
@Scheduled(cron = "10 * * * * *")
public void run() {
// 10초마다 실행
System.out.println("안녕하세요! " + LocalDateTime.now().toString());
}
}
@EnableScheduling 어노테이션을 설정합니다.
그리고 시간을 지정할 메소드 위에
@Scheduled(cron = "10 * * * * *")
시간을 지정해줍니다.
크론의 표현식은 여섯자리로 이루어져있습니다.
# ┌───────────── second (0-59)
# │ ┌───────────── minute (0–59)
# │ │ ┌───────────── hour (0–23)
# │ │ │ ┌───────────── day of the month (1–31)
# │ │ │ │ ┌───────────── month (1–12)
# │ │ │ │ │ ┌──────────── day of the week (0–6) (Sunday to Saturday; 7 is also Sunday on some systems)
# │ │ │ │ │ │
# │ │ │ │ │ │
# * * * * * * <command to execute>
* * * * * *
첫 번째 - 초 (0-59)
두 번째 - 분 (0-59)
세 번째 - 시 (0-23)
네 번째 - 일 (1-31)
다섯번째 - 월 (1-12)
여섯번째 - 요일 (0-7) 0과 7은 일요일, 1부터 월요일로 시작해서 6은 토요일로 끝남
* - 모든조건(ALL)을 뜻함
? - 어떤값이든 상관없음(일,월, 요일에서만 사용 가능)
-(하이픈) - 범위를 지정할때 사용
,(콤마; 쉼표) - 여러값을 지정할때 사용
/(슬래시; 빗금) - 초기값과 증가치를 지정할때 사용
L(라스트; 마지막) - 마지막 값: 지정할 수 있는 범위의 마지막 값(일, 월, 요일에서만 사용 가능)
#(해쉬; 샵) - 요일 필드에서만 '#'이 허용됨, 뒤에는 1~5 사이의 숫자가 와야함 특정 달의 "두 번째 금요일"과 같은 구문을 지정할 수 있음
예를 들면 요일 필드에 "5#3"을 입력하면 매월 세 번째 금요일에 해당함
W - 가장 가까운 평일을 찾음(일에서만 사용 가능)
18W
* 18일이 평일이면 18일에 실행
* 18일이 토요일이면 가장 가까운 평일인 17일(금요일)에 실행
* 18일이 일요일이면 가장 가까운 평일인 19일(월요일)에 실행
<reference>
728x90
300x250
'Spring' 카테고리의 다른 글
[Spring; 스프링] @Profile 어노테이션 (0) | 2023.10.24 |
---|---|
[Spring; 스프링] Swagger 설정 (0) | 2023.10.24 |
[Spring; 스프링] RequestRejectedException - Spring Security (0) | 2023.10.18 |
[Spring; 스프링] Spring Security (0) | 2023.10.05 |
[Spring; 스프링] mappedBy 연관관계 (0) | 2023.10.04 |