[Spring] SpringMvc + Spring Scheduler 사용하기

hyewon jeong·2024년 5월 22일
0

Spring

목록 보기
60/65

Spring MVC에서 스케줄러를 설정하는 방법은 크게 두 가지가 있습니다.

  1. XML 설정 파일을 이용한 방법
  2. 애노테이션을 이용한 방법

그 중 애노테이션을 이용한 방법으로 스케쥴링을 구현하였습니다.

시작 전 아래와 같이 폴더 및 파일 생성을 해줍니다.

1. xml 설정 (dispatcher-servlet.xml)


<!-- Annotation -->
<mvc:annotation-driven></mvc:annotation-driven>

<!-- Base package -->
<context:component-scan base-package="com.company.frmm.scheduler"></context:component-scan>

2. config 파일 설정

import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;

@Configuration
public class SchedulerConfig implements SchedulingConfigurer {

    private final int POOL_SIZE = 10;

    @Override
    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {

        ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
        threadPoolTaskScheduler.setPoolSize(POOL_SIZE);
        threadPoolTaskScheduler.initialize();;

        scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
    }
}
  • @Configuration : SchedulerConfig클래스가 스프링에서 설정 파일임을 나타냅니다.
  • SchedulingConfigurer 이 인터페이스를 구현하여 스케줄링 구성을 지정합니다.
  • POOL_SIZE 상수는 스케줄링 작업을 처리할 스레드 풀의 크기를 나타냅니다. 여기서는 10으로 설정되어 있습니다.
  • ScheduledTaskRegistrar : . 이 객체는 스케줄링 작업을 등록하는 데 사용됩니다.
  • ScheduledTaskRegistrar 객체의 setTaskScheduler() 메서드를 호출하여 설정한 ThreadPoolTaskScheduler 객체를 등록합니다. 이렇게 하면 스케줄링 작업이 지정된 스레드 풀에서 실행됩니다.

3. CustomScheduler 파일

import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
@EnableScheduling // 스케쥴링을 위한 애노테이션 
public class CustomScheduler {


    @Scheduled(cron = "*/10 * * * * *") //10초마다 실행 
    public void init(){
        System.out.println("=======================⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐동작여부확인");
    }
}

4. 결과

10초마다 출력되는 것을 확인 할 수 있습니다.

cron표현식

profile
개발자꿈나무

0개의 댓글