Spring Boot で定期的にバッチ処理を実行する

定期的に一時ファイルを削除するとか、データを更新するとか、バッチ処理を実行する。

スケジューリングを有効にする。

@SpringBootApplication
@EnableScheduling
public class Application {

実際に実行したい処理は下記のような感じ。

@Component
public class XxxxTasks {

    @Scheduled(cron = "0 * * * * *")
    public void xxxxTask() {

これは毎分0秒に実行する例です。
このように cron で書く以外にも、
前の処理から5秒遅延させる
@Scheduled(fixedDelay=5000)
とか、5秒間隔で実行させるとか、
@Scheduled(fixedRate=5000)
初回の待機時間を設定するとか、
@Scheduled(initialDelay=1000, fixedRate=5000)
できるようです。

スケジューリングのデフォルトスレッドプールサイズが1のため、複数のタスクを同時実行させる場合は、スレッドプールのサイズを変更する必要があるようです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA