반응형
이번 글에서는 Spring Boot에서 설정한 시간마다 특정 동작을 하는 Scheduler 사용법에 대해 알아보도록하자
우선 매시간마다 특정 동작을 한다고하였는데, 동작을 실시하는 시간을 설정하는 문자열 방식을 살펴보자.
실행주기를 설정하는 문자열은 6개의 숫자, 문자, * 등으로 이루어져있다
1 2 3 4 5 6 // 순서
* * * * * * // 실행주기 문자열
// 순서별 정리
1. 초(0-59)
2. 분(0-59)
3. 시간(0-23)
4. 일(1-31)
5. 월(1-12)
6. 요일(0-7)
위와 같이 각 순서에 맞는 시간 설정 값이 있고, 예를 들어 살펴보도록하자.
"0 0 * * * *" = the top of every hour of every day.
"*/10 * * * * *" = 매 10초마다 실행한다.
"0 0 8-10 * * *" = 매일 8, 9, 10시에 실행한다
"0 0 6,19 * * *" = 매일 오전 6시, 오후 7시에 실행한다.
"0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30, 10:00 and 10:30 every day.
"0 0 9-17 * * MON-FRI" = 오전 9시부터 오후 5시까지 주중(월~금)에 실행한다.
"0 0 0 25 12 ?" = every Christmas Day at midnight
위와 같이 설정한시간 주기에 맞게 원하는 메소드등이 실행된다.
간단한 코드를 작성하여 테스트해보도록하자.
SchedulerApplication.java
// ... 코드 중략
@SpringBootApplication
@EnableScheduling
public class SchedulerApplication {
public static void main(String[] args) {
SpringApplication.run(SchedulerApplication.class, args);
}
}
ConsoleScheduler.java
// ... 코드 중략
@Component
public class ConsoleScheduler {
@Scheduled(cron = "10 * * * * *")
public void printDate () {
System.out.println(new Date().toString());
}
}
위와같이 설정클래스에 @EnableScheduling 등록한 후에 Cron으로 설정할 메소드에 @Scheduled 어노테이션을 추가한다.
매분 10초가 되면 해당 메소드가 실행되면서 현재 날짜 및 시간이 콘솔창에 출력될것이다.
결과를 보면, 매분 10초마다 현재 날짜가 출력되는것을 확인할 수 있다.
참조
https://krksap.tistory.com/1269https://krksap.tistory.com/1269
반응형
'Spring > Spring Boot' 카테고리의 다른 글
[SpringBoot] TimeZone 설정 후 출력하기 (0) | 2021.02.03 |
---|---|
[SpringBoot] DataBase를 연동한 게시판 구현3 (0) | 2019.12.22 |
[SpringBoot] DataBase를 연동한 게시판 구현2 (0) | 2019.12.04 |
[SpringBoot] DataBase를 연동한 게시판 구현1 (0) | 2019.12.03 |
[SpringBoot] 게시판 구현3(DB 연결없음) (1) | 2019.11.17 |
댓글