Cron は、日時情報を記述するのに広く利用されている標準です。
Scheduler は、毎秒を監視し、Quartz Cron 式が日時の設定と一致すると Mule イベントを作成します。イベントは 1 回だけ、または一定間隔でトリガーできます。
日時の式は、6 つの必須設定と、年の設定 (省略可能) で構成されます。設定は以下の順序で指定します。
-
秒 (0-59)
-
分 (0-59)
-
時 (0-23)
-
日 (1-31)
-
月 (1-12 または JAN-DEC)
-
曜日 (1-7 または SUN-SAT)
-
年 (空白、または 1970-2099 の範囲内の 4 桁。例: 2019)
Scheduler は Quartz Cron 式をサポートします。例をいくつか示します。
| 式 |
動作 |
1/2 * * * * ?
|
毎日 2 秒おきに実行。 |
0 15 10 ? * *
|
毎日午前 10 時 15 分に実行。 0 15 10 * * ? ` と 0 15 10 *`0 15 10 * * ? は同じ結果になります。 |
0 15 10 * * ? 2019
|
2019 年の毎日午前 10 時 15 分に実行。 |
0 * 14 * * ?
|
毎日午後 2 時から 2 時 59 分まで、毎分実行。 |
0 0/5 14 * * ?
|
毎日午後 2 時から 2 時 55 分まで、5 分おきに実行。 |
1 1 1 1,7 * ?
|
毎月 1 日と 7 日の午前 1 時 1 分 1 秒に実行。 |
Scheduler コンポーネントは、Quartz Scheduler の特殊も時もサポートします。
-
*: すべての値。
-
?: 任意の 1 つの値。
-
-: 値の範囲。例: 1-3。
-
,: 追加の値。例: 1,7。
-
/: 増分値。例: 1/7。
-
L: 週または月の最終日、または月の最後の特定の曜日 (例: 6L は月の最後の土曜日)。
-
W: 平日。日付項目で有効で、特定の日付以降になります。例: 15W はその月の 15 日に最も近い平日を表します。
-
#: 月の n 日目。例: #3 は月の 3 日。
次の例は、「hello」というメッセージを毎秒ログに記録します。
<flow name="cronFlow" doc:id="ae257a5d-6b4f-4006-80c8-e7c76d2f67a0" >
<scheduler doc:name="Scheduler" doc:id="e7b68ccb-c6d8-4567-87af-aa7904a50359" >
<scheduling-strategy >
<cron expression="* * * * * ?" timeZone="America/Los_Angeles"/>
</scheduling-strategy>
</scheduler>
<logger level="INFO" doc:name="Logger" doc:id="e2626dbb-54a9-4791-8ffa-b7c9a23e88a1" message='"hello"'/>
</flow>
Cron 式をビルドするための無料のオンラインツールがたくさんあります。
タイムゾーン (timeZone)
Cron 式では Java の timeZone 値がサポートされます。Java の短縮表記 (PST や AGT) は使用せず、Java の完全表記 (America/Los_Angeles や America/Argentina/Buenos_Aires) を使用してください。