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