今製造してる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等があるようですが、いまいち理解できなかったのでまとめるのはまた今度ということにします。