보통사람

Spring Boot Quartz 연동 예제 본문

Spring

Spring Boot Quartz 연동 예제

pej4303 2023. 8. 13. 00:34

환경설정

개발툴 : InteliJ
Spring Boot : 2.7.14
Quartz : 2.3.2
Java : 11
Gradle

1. bulid.gradle 파일에 추가

implementation "org.springframework.boot:spring-boot-starter-quartz"

2. @Scheduled 어노테이션을 이용

스케쥴러를 적용할 메소드에 @Scheduled 어노테이션을 사용한다.

@Controller
public class QuartzController {
    @Scheduled(cron = "0/5 * * * * ?")
    public void everyFiveSeconds() {
        DateTimeFormatter patten = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formatDt = patten.format(LocalDateTime.now());

        System.out.println(formatDt);
    }
}

@SpringBootApplication이 붙은 파일에 @EnableScheduling 어노테이션 추가한다.

추가 하지 않으면 스케쥴러가 실행되지 않는다.

@SpringBootApplication
@EnableScheduling
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
@EnableScheduling

스케쥴러를 기능을 켜는 역할을 하며, @Scheduled 어노테이션을 찾아서 실행을 시킨다.

Enables Spring's scheduled task execution capability, similar to functionality found in Spring's XML namespace.
This enables detection of @Scheduled annotations on any Spring-managed bean in the container.
 

EnableScheduling (Spring Framework 6.0.11 API)

Enables Spring's scheduled task execution capability, similar to functionality found in Spring's XML namespace. To be used on @Configuration classes as follows: @Configuration @EnableScheduling public class AppConfig { // various @Bean definitions } This e

docs.spring.io

 

3. 실행 결과

5초마다 실행 된것을 확인 할 수 있다.

스케쥴러 실행 결과

참조