hainet50b

Spring Scheduling Tasks

公式ドキュメント:Scheduling Tasks (日本語版)

Scheduling Tasksを有効化

@Configuration
@EnableScheduling
public class SchedulingTasksConfig {
}

プロファイルで有効・無効を切り替える場合は@ConditionalOnPropertyを活用する。

@Configuration
@EnableScheduling
@ConditionalOnProperty(name = "app.scheduling-tasks.enabled")
public class SchedulingTasksConfig {
}

定期実行タスクの設定

@Component
public class ProgramachoScheduler {

    @Scheduled(cron = "0 0 * * * *")
    public void programacho() {
        // Be programacho!
    }
}

スケジュール設定はプロパティを参照できる。

@Scheduled(cron = "${app.scheduling-tasks.cron}")

スレッド数の変更

デフォルトではシングルスレッドで稼働する。

spring:
  task:
    scheduling:
      pool:
        size: 10