Spring Bootでバックグラウンドの定期処理をする


Applicationクラスに@EnableSchedulingを追加する

@SpringBootApplication
@EnableScheduling
class Application {
  companion object {
    @JvmStatic
    fun main(args: Array<String>) {
      SpringApplication.run(Application::class.java, *args)
    }
  }
}

バックグラウンドで実行したいメソッドに@Scheduledを追加する

@Service
class BackgroundRunner {
  @Scheduled(fixedDelay = 1000 * 60 * 60) // 1時間毎に実行
  fun doSomething() {
    ...
  }
}

See also