@TargetSE(valueSE={METHODSE,ANNOTATION_TYPESE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE @RepeatableSE(valueSE=Schedules.class) public @interface Scheduled
cron()
、fixedDelay()
、fixedRate()
のいずれかの属性を指定する必要があります。 アノテーション付きメソッドは引数を必要としません。通常、戻り値の型は void
になります。そうでない場合、スケジューラーを介して呼び出された場合、戻り値は無視されます。
@Scheduled
アノテーションの処理は、ScheduledAnnotationBeanPostProcessor
を登録することによって実行されます。これは、手動で実行することも、<task:annotation-driven/>
XML 要素または @EnableScheduling
アノテーションを介して実行する方が便利です。
このアノテーションは繰り返し可能なSEアノテーションとして使用できます。同じメソッドで複数のスケジュールされた宣言が見つかった場合、それぞれ独立して処理され、それぞれに対して個別のトリガーが起動されます。結果として、そのような同じ場所に配置されたスケジュールは重複し、並行してまたはすぐに連続して複数回実行される可能性があります。
このアノテーションをメタアノテーションとして使用して、属性をオーバーライドしたカスタム合成アノテーションを作成できます。
EnableScheduling
, ScheduledAnnotationBeanPostProcessor
, Schedules
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | CRON_DISABLED 無効なトリガーを示す特別な cron 式値: "-"。 |
修飾子と型 | オプションの要素と説明 |
---|---|
StringSE | cron cron のような表現で、通常の UN*X 定義を継承して、秒、分、時間、日、月、曜日のトリガーを含めます。 |
long | fixedDelay 最後の呼び出しの終了から次の呼び出しの開始までの期間を固定して、アノテーション付きメソッドを実行します。 |
StringSE | fixedDelayString 最後の呼び出しの終了から次の呼び出しの開始までの期間を固定して、アノテーション付きメソッドを実行します。 |
long | fixedRate 呼び出しの間隔を固定して、アノテーション付きメソッドを実行します。 |
StringSE | fixedRateString 呼び出しの間隔を固定して、アノテーション付きメソッドを実行します。 |
long | initialDelay fixedRate() または fixedDelay() タスクの最初の実行までに遅延する時間の単位数。 |
StringSE | initialDelayString fixedRate() または fixedDelay() タスクの最初の実行までに遅延する時間の単位数。 |
TimeUnitSE | timeUnit |
StringSE | zone cron 式が解決されるタイムゾーン。 |
public static final StringSE CRON_DISABLED
これは、主に ${...}
プレースホルダーで使用するためのもので、対応するスケジュールされたメソッドを外部で無効にすることができます。
ScheduledTaskRegistrar.CRON_DISABLED
public abstract StringSE cron
例: "0 * * * * MON-FRI"
は、平日の 1 分間に 1 回(その分で -0 秒)を意味します。
左から右に読み取られるフィールドは、次のように解釈されます。
特別な値 "-"
は、主に ${...}
プレースホルダーによって解決される外部で指定された値を対象とした無効な cron トリガーを示します。
CronExpression.parse(String)
public abstract StringSE zone
TimeZone.getTimeZone(String)
SE が受け入れるゾーン ID、またはサーバーのデフォルトのタイムゾーンを示す空の文字列 CronTrigger(String, java.util.TimeZone)
, TimeZone
SEpublic abstract long fixedDelay
時間の単位はデフォルトでミリ秒ですが、timeUnit()
を介してオーバーライドできます。
public abstract StringSE fixedDelayString
時間の単位はデフォルトでミリ秒ですが、timeUnit()
を介してオーバーライドできます。
この属性バリアントは、Spring スタイルの "${...}" プレースホルダーと SpEL 式をサポートします。
java.time.Duration
SE 準拠の値 fixedDelay()
public abstract long fixedRate
時間の単位はデフォルトでミリ秒ですが、timeUnit()
を介してオーバーライドできます。
public abstract StringSE fixedRateString
時間の単位はデフォルトでミリ秒ですが、timeUnit()
を介してオーバーライドできます。
この属性バリアントは、Spring スタイルの "${...}" プレースホルダーと SpEL 式をサポートします。
java.time.Duration
SE 準拠の値 fixedRate()
public abstract StringSE initialDelayString
fixedRate()
または fixedDelay()
タスクの最初の実行までに遅延する時間の単位数。 時間の単位はデフォルトでミリ秒ですが、timeUnit()
を介してオーバーライドできます。
この属性バリアントは、Spring スタイルの "${...}" プレースホルダーと SpEL 式をサポートします。
java.time.Duration
SE 準拠の値 initialDelay()
public abstract TimeUnitSE timeUnit
fixedDelay()
、fixedDelayString()
、fixedRate()
、fixedRateString()
、initialDelay()
、initialDelayString()
に使用する TimeUnit
SE。 デフォルトは TimeUnit.MILLISECONDS
SE です。
この属性は、cron 式、fixedDelayString()
、fixedRateString()
、initialDelayString()
を介して提供される Duration
SE 値では無視されます。
TimeUnit