Spring Bootで定期的に処理を実行(スケジューリング)する方法をメモしておきます。バッチ処理を行う際に使えそうです。設定も簡単でした。
環境
Spring Bootで定期的に処理を実行する
Spring Bootでスケジューリングを有効化するためには、アプリケーションクラスに@EnableSchedulingアノテーションをつけます。
あとは、定期的に処理を実行したいメソッドに@ScheduledアノテーションをつけてやればOKです。
@Scheduledアノテーションで使用できるパラメータは以下のとおりです。
fixedDelay:メソッドの前回の実行完了時刻から何ミリ秒後に実行するか。fixedRate:メソッドの前回の実行開始時刻から何ミリ秒後に実行するか。initialDelay:メソッドの初回実行時の待機時間。単位はミリ秒。cron:cronによるスケジュール設定。zoneによるタイムゾーンの指定も可能。
スケジューリングの指定を設定ファイルに記述する
application.ymlかapplication.propertiesのどちらかにスケジューラの設定を記述します。
application.yml
application.properties
あとは、@Scheduledアノテーションのパラメータに${設定名}を設定してやればOKです。
まとめ
Spring Bootで定期的に処理を実行(スケジューリング)する方法でした。思っていたよりもずっと簡単に設定できました。