春のスケジュールアノテーション
1.概要
シングルスレッド実行では不十分な場合は、
org.springframework.scheduling.annotation
パッケージのアノテーションを使用できます。
この簡単なチュートリアルでは、Spring Scheduling Annotationsについて説明します。
2.
@ EnableAsync
このアノテーションで、Springの非同期機能を有効にすることができます。
@ Configuration
と一緒に使用する必要があります。
@Configuration
@EnableAsync
class VehicleFactoryConfig {}
非同期呼び出しを有効にしたので、
@ Async
を使用してそれをサポートするメソッドを定義できます。
3.
@ EnableScheduling
このアノテーションを使用すると、アプリケーションでスケジューリングを有効にできます。
また、それを
@ Configuration
と組み合わせて使用する必要があります。
@Configuration
@EnableScheduling
class VehicleFactoryConfig {}
その結果、
@ Scheduled
を使用してメソッドを定期的に実行できるようになりました。
4.
@非同期
-
別のスレッドで** 実行したいメソッドを定義することができるので、それらを非同期に実行します。
これを実現するために、メソッドに
@ Async
というアノテーションを付けることができます。
@Async
void repairCar() {
//...
}
このアノテーションをクラスに適用すると、すべてのメソッドは非同期に呼び出されます。
@ EnableAsync
またはXML設定を使用して、このアノテーションが機能するように非同期呼び出しを有効にする必要があることに注意してください。
@ Async
に関する詳細は
この記事
にあります。
5.
@予定
-
定期的に実行する** メソッドが必要な場合は、このアノテーションを使用できます。
@Scheduled(fixedRate = 10000)
void checkVehicle() {
//...
}
これを使って
固定間隔
でメソッドを実行することも、
cronのような式
で微調整することもできます。
@ Scheduled
は、Java 8の繰り返しアノテーション機能を利用します。つまり、メソッドに複数回マークを付けることができます。
@Scheduled(fixedRate = 10000)
@Scheduled(cron = "0 ** ** ** ** MON-FRI")
void checkVehicle() {
//...
}
@ Scheduled
でアノテーションが付けられたメソッドは
void
戻り型を持つべきであることに注意してください。
さらに、このアノテーションのスケジューリングを有効にする必要があります。たとえば、@ @ EnableScheduling__またはXML設定を使用します。
スケジューリングの詳細については、リンク:/spring-schedule-tasks[この記事]を参照してください。
6.
@スケジュール
このアノテーションを使用して、複数の
@ Scheduled
ルールを指定できます。
@Schedules({
@Scheduled(fixedRate = 10000),
@Scheduled(cron = "0 ** ** ** ** MON-FRI")
})
void checkVehicle() {
//...
}
Java 8以降、上記のように注釈の繰り返し機能を使用して同じことを実現できることに注意してください。
7.まとめ
この記事では、最も一般的なSpringスケジューリング注釈の概要を見ました。
いつものように、例はhttps://github.com/eugenp/tutorials/tree/master/spring-boot-mvc[GitHubで利用可能]にあります。
次
”
-
«** 前へ