스프링 스케줄러 사용방법
운영하고있는 사이트에서 만든 새로운 기능에 스케줄링을 사용해야 하는 케이스가 있었다.
당시에 Spring에서 제공하는 Spring Scheduler을 사용해 간단히 구현이 가능했는데
이번 포스트에서는 해당 기능을 간단히 정리해보려고 한다.
1. 스케줄러 활성화
서비스의 main 어플리케이션에 @EnableScheduling 어노테이션을 추가하여 스프링 스케줄러를 활성화 시킨다.
@SpringBootApplication
@EnableScheduling
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
2. 스케줄 대상 서비스 구현
스케줄을 구현할 서비스를 구현한다. 해당 스케줄은 빈에 등록되어야 해서 해당 프로젝트에서는 @Component어노테이션을 클래스에 추가하여 구현했다. 스케줄 실행 주기를 설정하는 방법은 cron속성으로 작업 시간대를 설정하는 방법과, fixedDelay 및 fixedRate속성으로 작업 간격을 설정하는 방법이 있다.
@Component
@AllArgsConstructor
public class Schedule {
private final ScheduleService scheduleService;
@Scheduled(cron = "0 0 1 * * ?")
public void cronJobSample() {
cron 속성 사용방법
@Scheduled(cron = "* * * * * *")
![]()
위와 같은방법으로 해당하는 위치에 스케줄을 실행할 월/주/일/시/분/초 등을 지정할수 있다.
사용예시
* 0 0/5 * * * ? : 매 5분마다 실행
* 0 0 0/1 * * ? : 매 1시간마다 실행
* 0 0 12 * * ? : 매일 낮 12시에
* 0 15 10 * * ? : 매일 오전 10:15분에 실행
* 0 15 10 15 * ? : 매달 15일 오전 10:15에