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で定期的に処理を実行(スケジューリング)する方法でした。思っていたよりもずっと簡単に設定できました。