본문 바로가기
Spring/Spring Boot

[SpringBoot] Spring Boot Scheduler(Cron) 사용방법

by dbjh 2020. 7. 25.
반응형

이번 글에서는 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초마다 현재 날짜가 출력된 결과

결과를 보면, 매분 10초마다 현재 날짜가 출력되는것을 확인할 수 있다.

 

 

참조

 

Spring Boot Scheduler Cron(크론)

Spring Boot Scheduler Cron(크론) 스프링부트에서 특정 시간마다 반복되게 할려면 크론이라는걸 사용한다. 크론은 다음과 같이 * * * * * * 총 6자리로 이루어져 있다. 각 자리는 초, 분, 시, 일, 월, 요일 ��

krksap.tistory.com

https://krksap.tistory.com/1269https://krksap.tistory.com/1269

반응형

댓글