

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Cron 表達式參考
<a name="cron-expression-reference"></a>

此解決方案針對週期性測試排程使用標準 5 欄位 Linux Cron 格式的子集。Cron 表達式由以空格分隔的五個欄位組成。

```
┌───────── minute (0-59)
│ ┌─────── hour (0-23, *, */N, or comma list)
│ │ ┌───── day of month (1-31 or *)
│ │ │ ┌─── month (1-12 or *)
│ │ │ │ ┌─ day of week (0-6, *, range, or list)
│ │ │ │ │
0 9 * * 1-5
```

## 接受的值
<a name="cron-accepted-values"></a>

下表說明每個欄位接受的內容。


| 欄位 | 接受的值 | 範例 | 
| --- | --- | --- | 
| 分鐘 | 從 0 到 59 的單一值。 |  `0`, `30`, `45`  | 
| 小時 |  ` ` （每小時）、步驟值 ``、從 0 到 23 的單一值，或逗號分隔的值清單。 |  ` `, ``, `9`, `9,17`  | 
| 月中的日 |  `*` （每天） 或從 1 到 31 的單一值。 |  `*`, `1`, `15`, `31`  | 
| 月 |  `*` （每月） 或從 1 到 12 的單一值。 |  `*`, `1`, `6`, `12`  | 
| 週中的日 |  `*` （每天）、從 0 到 6 的單一值、使用連字號的範圍，或以逗號分隔的清單。 |  `*`, `0`, `1-5`, `0,6`  | 

星期幾值使用以下映射：0 = 星期日，1 = 星期一，2 = 星期二，3 = 週三，4 = 星期四，5 = 星期五，6 = 星期六。

## 不支援的模式
<a name="cron-unsupported-patterns"></a>

下列模式是有效的 Linux cron 語法，但此解決方案不支援。


| 模式 | 範例 | Reason | 
| --- | --- | --- | 
| 分鐘步驟值 |  `*/15 * * * *`  | 最短排程間隔為一小時。 | 
| 分鐘清單 |  `0,30 * * * *`  | 最短排程間隔為一小時。 | 
| 月中的日期範圍 |  `0 9 1-15 * *`  | 只接受單日值或萬用字元。 | 
| 月中的日期清單 |  `0 9 1,15 * *`  | 只接受單日值或萬用字元。 | 
| 月範圍 |  `0 9 * 3-9 *`  | 只接受單月值或萬用字元。 | 
| 月清單 |  `0 9 1 1,6,12 *`  | 只接受單月值或萬用字元。 | 
| 問號 |  `0 9 ? * ?`  | 問號字元在標準 Linux Cron 中無效。請改用 `*`。 | 

## 預設模式
<a name="cron-preset-patterns"></a>

Web 主控台提供下列預設模式，您可以直接選取。


| 模式名稱 | 表達式 | 說明 | 
| --- | --- | --- | 
| 每小時 |  `0 * * * *`  | 在每小時的分鐘 0 執行。 | 
| 每日上午 9：00 |  `0 9 * * *`  | 在所選時區的每天上午 9：00 執行一次。 | 
| 工作日上午 8：00 |  `0 8 * * 1-5`  | 週一至週五的上午 8：00 執行。 | 
| 每週日下午 5 點 |  `0 17 * * 0`  | 每週日下午 5：00 執行。 | 
| 每月 1 日上午 11 點 |  `0 11 1 * *`  | 在每個月第一天的上午 11：00 執行。 | 

## 排程限制條件
<a name="cron-scheduling-constraints"></a>
+ 排程測試執行之間的最短間隔為一小時。系統會驗證連續執行之間的間隔是否超過預估的測試持續時間。
+ 所有週期性排程都需要過期日期。過期日期 (UTC) 結束後，測試將不會執行。
+ 排程時區會決定 Cron 何時觸發。日光節約時間轉換會自動處理。如果排程時間因 DST 向前彈簧轉換而不存在，則會略過該發生。
+ 系統會驗證 Web 主控台和 API 上的 cron 表達式。如果表達式不符合接受的格式，則無法建立測試。