JAVA/Spring Boot

[ Spring Boot ] - 간단 스케줄링 작업하기

algml0703 2023. 8. 9. 20:48
반응형

@EnableScheduling와 @Schedule를 활용한 스케쥴링 작업

서버 실행 하는 클래스에 @EnableScheduling을 아래와 같이 붙여 준다.

일정 시간대나 또는 일정 시간 마다 실시하려는 작업을 수행할 클래스를 아래와 같이 작성해준다. 해당 클래스에는 @Component를, 실질적으로 작업을 수행하는 메서드에는 @Scheduled(cron="[cron식]")을 붙여준다.

또는 fixedRate를 통해 일정 시간마다 작업이 수행되도록 할 수 있다. 아래의 경우 5초마다 반복하여 'fixed rate 5000------'를 출력한다.

Q) @EnableScheduling는?

스프링 프레임워크에서 제공하는 어노테이션으로 @Scheduled가 붙은 메서드인 경우 스케쥴 작업을 활성화하여 준다. 어플리케이션의 main 클래스에 해당 어노테이션을 붙여주면 스프링 컨텍스트에 스케쥴링을 관리하기 위한 백그라운드 스레드 풀이 실행된다.

Q) 클래스에 @Component를 붙이는 이유?

스케쥴링 관련 작업은 스프링 컨텍스트에 의해 백그라운드 스레드 풀에서 실행되기 때문에, 스케쥴링 작업을 작성하려는 클래스는 스프링 컨텍스트에 의해 관리될 수 있도록 빈에 등록되어야 한다. 때문에 @Component 어노테이션을 붙여준다.

 

 

반응형