SpringBootでは@Scheduledアノテーションを使用することによって、コンテナを定期実行することができます。
定期実行を有効にするには3つの設定が必要です。
・エントリポイント(Application.javaなど)に@EnableSchedulingを付与
・定期実行する処理を持つクラスを作成し、アノテーションを付与し、コンテナ化する。
・定期実行処理を作成し、@Scheduledで実行間隔を指定する。
エントリポイント
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
スケジュール実行クラス
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduleSample {
@Scheduled(fixedRate = 5000) // 5秒
public void scheduleExec() {
System.out.println("スケジュール実行");
}
}
@Scheduledは実行間隔だけでなく、Cron式を設定することもできます。
The @Scheduled Annotation in Spring | Baeldung