本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
排程表達式參考
使用這些參考表來建構排程查詢的排程表達式。所有時間均以 UTC 表示。
Cron 表達式語法
格式:cron(minute hour day-of-month month day-of-week year)
| 使用案例 | Cron 表達式 | 描述 | 使用時機 |
|---|---|---|---|
| 每日排程 | cron(0 9 * * ? *) |
UTC 每天上午 9:00 | 每日報告 |
cron(0 */6 * * ? *) |
每 6 小時 (00:00、06:00、12:00、18:00 UTC) | 頻繁監控 | |
cron(30 2 * * ? *) |
UTC 每天上午 2:30 | 離峰分析 | |
| 營業時間 | cron(0 9-17 ? * MON-FRI *) |
週一至週五 UTC,上午 9 點至下午 5 點,每小時 | 業務監控 |
cron(0 18 ? * MON-FRI *) |
UTC 的工作日下午 6:00 | 工作日結束 | |
cron(0 8,12,17 ? * MON-FRI *) |
UTC 工作日上午 8 點、中午和下午 5 點 | 關鍵營業時間 | |
| 每週排程 | cron(0 12 ? * SUN *) |
每週日中午 UTC | 每週摘要 |
cron(0 9 ? * MON *) |
UTC 每週一上午 9:00 | 週開始報告 | |
cron(0 23 ? * FRI *) |
每週五 11:00 PM UTC | 週結束清除 | |
| 每月排程 | cron(0 0 1 * ? *) |
每月第一天午夜 UTC | 每月報告 |
cron(0 9 L * ? *) |
每月最後一天 UTC 上午 9:00 | 月末處理 | |
cron(0 10 1 1,4,7,10 ? *) |
每季第一天的 UTC 上午 10:00 | 每季分析 | |
| 高頻率 | cron(*/15 * * * ? *) |
每 15 分鐘 | 即時監控 |
cron(0,30 * * * ? *) |
每 30 分鐘 (在 :00 和 :30) | 頻繁檢查 | |
cron(0 */2 * * ? *) |
每 2 小時 | 定期間隔 | |
| 特殊案例 | cron(30 8 1 1 ? *) |
1 月 1 日上午 8:30 UTC | 年度報告 |
cron(0 6 * * SAT,SUN *) |
UTC 上午 6:00 的週末 | 週末處理 | |
cron(0 0 ? * MON#1 *) |
每月的第一個星期一午夜 UTC | 每月規劃 |
Cron 表達式欄位參考
| 欄位 | 值 | 萬用字元 | 範例 |
|---|---|---|---|
| 分鐘 (第 1 個) | 0-59 | * , - / |
0 (小時頂端)、 */15 (每 15 分鐘)、 0,30(每小時兩次) |
| 小時 (第 2 個) | 0-23 | * , - / |
9 (上午 9 點)、 */2 (每 2 小時)、 9-17(上班時間) |
| Day-of-month(第 3 天) | 1-31、L、W | * , - / ? |
1 (第 1 天)、 L (最後一天)、 ?(使用day-of-week時) |
| 月 (第 4 個) | 1-12 或 JAN-DEC | * , - / |
1 (1 月)JAN、、 1,4,7,10(每季) |
| Day-of-week(第 5 天) | 1-7 或 SUN-SAT | * , - / ? # L |
MON-FRI (平日)SUN、、 MON#1(第一個星期一) |
| 年 (第 6 個) | 1970-2199 | * , - / |
* (每年)、 2024(特定年份)、 2024-2026(範圍) |
萬用字元和特殊表達式
*(星號)-
符合 欄位中的所有值。範例:
*在小時欄位中表示每小時。 ?(問號)-
沒有特定值。在指定其他 時,以day-of-month中的日或day-of-week使用 。範例:
?在day-of-month時MON-FRI,在每月day-of-week。 -(破折號)-
值的範圍。範例:
MON-FRI(週一至週五)、9-17(上午 9 點至下午 5 點)。 ,(逗號)-
多個特定值。範例:
MON,WED,FRI(週一、週三、週五)、8,12,17(上午 8 點、中午、下午 5 點)。 /(斜線)-
步驟值或增量。範例:
0/15以分鐘為單位表示從分鐘 0 (0、15、30、45) 開始每 15 分鐘一次。以小時*/2為單位表示每 2 小時一次。 L(最後一個)-
每月的最後一天或工作日的最後一次出現。範例:以月中的
L日表示月中的最後一天。FRIL表示月中的最後一個星期五。 day-of-month W(工作日)-
最近的工作日。範例:
15W表示最接近當月 15 日的工作日。 #(第 n 次出現)-
每月第三次出現工作日。範例:
MON#1表示每月的第一個星期一,FRI#2表示每月的第二個星期五。
常見模式和最佳實務
-
對於商業應用程式:使用
MON-FRI和 上班時間 (例如9-17),以避免在週末或下班時間執行查詢。 -
對於高頻率監控:使用增量,例如
*/15(每 15 分鐘),但請注意查詢並行限制。 -
為了提高資源效率:使用
2-6UTC 等上午時間,在離峰時間排程資源密集型查詢。 -
對於每月報告:將
L用於月份的最後一天或特定日期,例如1第一天,以確保一致的時間。