クラス 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
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明boolean
int
hashCode()
static boolean
isValidExpression
(StringSE expression) 指定された文字列が有効な cron 式を表すかどうかを判別します。<T extends TemporalSE & ComparableSE<? super T>>
Tnext
(T temporal) この式に一致する次のTemporal
SE を計算します。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 * * * *"
= 毎時 0 分 0 秒。"*/10 * * * * *"
= 10 秒ごと。"0 0 8-10 * * *"
= 毎日 8, 9, 10 時。"0 0 6,19 * * *"
= 毎日 AM 6:00 および PM 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
指定された文字列が有効な cron 式を表すかどうかを判別します。- パラメーター:
expression
- 評価する式- 戻り値:
true
(指定された式が有効な cron 式である場合)- 導入:
- 5.3.8
next
この式に一致する次のTemporal
SE を計算します。- 型パラメーター:
T
- テンポラルの型- パラメーター:
temporal
- シード値- 戻り値:
- この式に一致する次のテンポラル、またはそのようなテンポラルが見つからない場合は
null
equals
hashCode
public int hashCode()toString
このCronExpression
の作成に使用された式文字列を返します。