0
0

【備忘録】@Scheduled アノテーションの話

Posted at

今製造してるSpring bootのプロジェクトで、バッチ処理ってどうやってるんやろな~と思って調べた内容をまとめていきます。

@Scheduledアノテーション

@Scheduledアノテーションを使用すると、任意のタイミングで処理を走らせることが出来るようです。

使い方は↓

使い方

使い方はシンプルで、流したいメソッドにこのアノテーションをつければいいです。
@Scheduled
private void exampleMethod() {
    // ここに処理を記述
}

こんな感じですね。

注意点としては、このメソッドを記述してるクラスに@Configuration@EnableSchedulingを付与してあげる必要があります。

@Configuration
@EnableScheduling
pubic class ExampleClass {

    @Scheduled
    private void exampleMethod() {
        // ここに処理を記述
    }
    
}

上記のような構造で記述することによって、@Scheduledアノテーションを有効にすることが出来ます。

実行タイミングの指定

実行タイミングを指定することが出来ます。

指定方法もいくつかあります。

fixedRate

これを使うとシンプルな定期的実行がされます。(〇秒毎)
@Scheduled(fixedRate = 5000)

上記の記述で5秒毎に実行されることとなります。

単位はデフォルトでミリ秒です。(timeUnit で単位を指定することは可能です。)

fixedDelay

これは、処理が実行終了してから任意のタイミングで実行するように指定できます。
@Scheduled(fixedDelay = 5000)

たとえば、上記の様に記述した場合は処理自体が10秒かかるとしたら、15秒に1回処理が流れるイメージになります。

他にもcron等があるようですが、いまいち理解できなかったのでまとめるのはまた今度ということにします。

参考

Springの @Scheduled について
0
0
0

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
0
0