添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
218
226

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Spring Bootでtaskを定期実行する方法

Last updated at Posted at 2015-07-29

Spring Bootでtaskを定期的に実行する方法

下記の環境で動作確認を行いました。

  • Windows7 (64bit)
  • Java 1.8.0_45
  • Spring Boot 1.2.4
  • Maven 3.3.3
  • 下記のサイトを参考にさせて頂きました。

    Spring

  • GETTING STARTED - Scheduling Tasks
  • EnableSchedulingアノテーション

    スケジュールを有効にするにはEnableSchedulingを使用します。

    App.java
    package com.example.actor;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.scheduling.annotation.EnableScheduling;
    @SpringBootApplication
    @EnableScheduling
    public class App {
      public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    
    initialDelay
    @Scheduled(initialDelay = 60000, fixedRate = 5000)
    public void doSomething() {
      //...
    

    毎分0秒時にdoSomething()を実行する。

    @Scheduled(cron = "0 * * * * *", zone = "Asia/Tokyo")
    public void doSomething() {
      //...
    

    cronの実行スケジュールを設定ファイルに記述し、それをプログラムから参照するようにします。

    下記のように設定ファイル(application.yml)に実行スケジュールを定義します。
    この例ではキー名をcronとしました。(名前は任意です。)

    application.yml
    cron:
      cron1: 0 * * * * MON-FRI
      cron2: 0 */2 * * * *
    

    Scheduledアノテーションのcronフィールドに、設定値をspelで記述します。

    ScheduledTasks.java
    @Component
    public class ScheduledTasks {
      @Scheduled(cron = "${cron.cron1}")
      public void doSomething() {
        //...
    

    cronメモ

    左から秒(0-59)、分(0-59)、時(0-23)、日(1-31)、月(1-12)、曜日(0:日,1:月,2:火,3:水,4:木,5:金,6:土,7:日)を設定する。月、曜日は英語で3文字の短縮形が使用できる。

    218
    226
    3

    Register as a new user and use Qiita more conveniently

    1. You get articles that match your needs
    2. You can efficiently read back useful information
    3. You can use dark theme
    What you can do with signing up
    218
    226

    Delete article

    Deleted articles cannot be recovered.

    Draft of this article would be also deleted.

    Are you sure you want to delete this article?