クラス CronExpression
java.lang.ObjectSE
org.springframework.scheduling.support.CronExpression
次に一致するときに計算できる crontab 式の表現。
CronExpression インスタンスは parse(String) を通じて作成されます。次の一致は next(Temporal) で決定されます。
L/# 式を使用した Quartz 日 / 週フィールドをサポートします。SUN-SAT の 0 ~ 6 (SUN の場合も 7) を含む、その他すべての点で一般的な cron 規則に従います。Quartz は、SUN-SAT の 1 ~ 7 まで cron の曜日規則から逸脱していますが、Spring は、オプションの Quartz 固有の L/# 式と組み合わせた場合でも cron に厳密に従っていることに注意してください。
- 導入:
- 5.3
- 作成者:
- Arjen Poutsma
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明booleaninthashCode()static booleanisValidExpression(@Nullable StringSE expression) 指定された文字列が有効な cron 式を表すかどうかを判別します。<T extends TemporalSE & ComparableSE<? super T>>
@Nullable Tnext(T temporal) この式に一致する次のTemporalSE を計算します。static CronExpression指定された crontab 式文字列をCronExpressionに解析します。toString()このCronExpressionの作成に使用された式文字列を返します。
メソッドの詳細
parse
指定された crontab 式文字列をCronExpressionに解析します。文字列には、スペースで区切られた 6 つの時間と日付のフィールドがあります。┌───────────── second (0-59) │ ┌───────────── minute (0 - 59) │ │ ┌───────────── hour (0 - 23) │ │ │ ┌───────────── day of the month (1 - 31) │ │ │ │ ┌───────────── month (1 - 12) (or JAN-DEC) │ │ │ │ │ ┌───────────── day of the week (0 - 7) │ │ │ │ │ │ (0 or 7 is Sunday, or MON-SUN) │ │ │ │ │ │ * * * * * *
次の規則が適用されます。
- フィールドはアスタリスク(
*)にすることができ、これは常に「最初から最後」を表します。「日」または「曜日」フィールドでは、アスタリスクの代わりに疑問符(?)を使用できます。 - 数値の範囲は、ハイフン(
-)で区切られた 2 つの数値で表されます。指定された範囲は包括的です。 /nで範囲(または*)をたどると、範囲全体の数値の値の間隔が指定されます。- 「月」および「曜日」フィールドには英語名も使用できます。特定の日または月の最初の 3 文字を使用します(大文字と小文字は関係ありません)。
- 「日」および「曜日」フィールドには、「最後」を表す
L-character を含めることができ、各フィールドで異なる意味を持ちます。- 「月の日」フィールドでは、
Lは「月の最後の日」を表します。負のオフセットが続く場合(つまり、L-n)、「nからその月の最後の日まで」を意味します。W(つまりLW)が後に続く場合は、「月の最後の平日」を意味します。 - 「曜日」フィールドの
dLまたはDDDLは、「月の最後の曜日d(またはDDD)」を表します。
- 「月の日」フィールドでは、
- 「日」フィールドは
nWにすることができます。これは、「月の日に最も近い平日n」を表します。nが土曜日になると、その前に金曜日になります。nが日曜日に落ちる場合、これは月曜日になります。これは、nが1で土曜日に落ちる場合にも発生します(つまり、1Wは「月の最初の平日」を表します)。 - 「曜日」フィールドには
d#n(またはDDD#n)を指定できます。これは、「n-th の曜日d(またはDDD)を表します」。
式の例:
"0 0 * * * *"= 毎日の各時間の先頭"*/10 * * * * *"= 10 秒ごと- 毎日の
"0 0 8-10 * * *"= 8, 9, 10 時 "0 0 6,19 * * *"= 毎日午前 6:00 および午後 7:00- 毎日
"0 0/30 8-10 * * *"= 8:00, 8:30, 9:00, 9:30, 10:00, 10:30 "0 0 9-17 * * MON-FRI"= 平日 9 時から 5 時"0 0 0 25 12 ?"= クリスマスの真夜中"0 0 0 L * *"= 毎月の深夜 0 時"0 0 0 L-3 * *"= 真夜中の月の 3 番目から最後の日"0 0 0 1W * *"= 真夜中の月の最初の平日"0 0 0 LW * *"= 月の最後の平日午前 0 時"0 0 0 * * 5L"= 月の最終金曜日の午前 0 時"0 0 0 * * THUL"= 月の最終木曜日の深夜"0 0 0 ? * 5#2"= 月の第 2 金曜日の深夜"0 0 0 ? * MON#1"= 月の最初の月曜日の深夜
以下のマクロもサポートされています。
"@yearly"(または"@annually") は年に 1 回実行されます。つまり、"0 0 0 1 1 *""@monthly"は月に 1 回実行され、"0 0 0 1 * *"は"@weekly"を週 1 回実行する、つまり"0 0 0 * * 0""@daily"(または"@midnight") は 1 日 1 回実行されます。つまり"0 0 0 * * *""@hourly"は 1 時間に 1 回実行されます。つまり"0 0 * * * *"
- パラメーター:
expression- 解析する式の文字列- 戻り値:
- 解析された
CronExpressionオブジェクト - 例外:
IllegalArgumentExceptionSE- 式のが cron 形式に準拠していません
- フィールドはアスタリスク(
isValidExpression
next
この式に一致する次のTemporalSE を計算します。- 型パラメーター:
T- テンポラルの型- パラメーター:
temporal- シード値- 戻り値:
- この式に一致する次のテンポラル、またはそのようなテンポラルが見つからない場合は
null
equals
hashCode
toString