Scheduler

  1. Scheduler를 사용하기 위해 @EnableScheduling 를 추가해주면 된다.
@EnableScheduling
@SpringBootApplication()
public class MonthSubApplication {

  public static void main(String[] args) {
    SpringApplication.run(MonthSubApplication.class, args);
  }
}
  1. 사용하고자 하는 Method에 @Scheduled 를 붙여주어 사용할 수 있다.
    1. Method 는 반드시 void의 retuen 타입이어야한다.
    2. Method에는 Parameter를 가질 수 없다.
    3. cron or fixed~ 로 자신이 원하는 주기마다 설정이 가능하다.
@Component
public class Scheduler {

  private final ScheduledHandler seriesScheduledHandler;
  private final Logger logger = LoggerFactory.getLogger(getClass());

  public Scheduler(ScheduledHandler seriesScheduledHandler) {
    this.seriesScheduledHandler = seriesScheduledHandler;
  }

  @Scheduled(cron = "0 0/10 * * * *") //cron 주기마다 아래 method가 실행된다.
  public void changeSeriesStatus() { 
    seriesScheduledHandler.changeSeriesStatus();
  }
}

Scheduler의 비동기(Async) 처리

  1. Async를 사용하기 위해 @EnableAsync를 추가해준다.
@EnableAsync
@EnableScheduling
@SpringBootApplication()
public class MonthSubApplication {}