Cron表達式是設置定時任務執行時間的一種字符串格式,就像給鬧鐘定鈴一樣,你可以用它精確地告訴計算機任務在什麼時候執行。下面我將用一個清晰的表格和通俗的語言帶你快速入門。
⏰ Cron 表達式的基本結構
一個標準的Cron表達式由6個或7個字段組成,中間用空格隔開,它們分別代表不同的時間單位。最常見的格式包含以下6個字段,順序是固定的,絕對不能錯:
|
字段順序
|
含義
|
取值範圍
|
允許的特殊字符
|
|
1
|
秒 |
0-59
|
|
|
2
|
分鐘 |
0-59
|
|
|
3
|
小時 |
0-23
|
|
|
4
|
日(月份中的第幾天) |
1-31
|
|
|
5
|
月 |
1-12 或 JAN-DEC
|
|
|
6
|
星期幾 |
1-7 或 SUN-SAT (注意:1可能是週日或週一,需根據系統確認)
|
|
你可以這樣簡單記憶這個順序:秒、分、時、日、月、周。
🔑 理解特殊字符的“密碼”
Cron表達式的強大之處在於它使用了一些特殊字符來表示複雜的規則。下表是幾個最常用的字符:
|
特殊字符
|
含義
|
舉例説明
|
|
|
任意值(每) |
在“分鐘”字段用 |
|
|
多個值(或) |
在“小時”字段用 |
|
|
範圍(從…到…) |
在“星期”字段用 |
|
|
步長(每隔) |
在“分鐘”字段用 |
|
|
不指定 |
用於“日”或“星期”字段,當你指定了其中一個字段的值時,另一個通常用 |
|
|
最後 |
在“日”字段用 |
💡 來看看實際的例子
光説不練假把式,結合上面表格中的字符,我們來看一些常見的例子:
|
需求場景
|
Cron 表達式
|
解釋
|
|
每天中午12點執行
|
|
第0秒、第0分鐘、12點、日期和星期不限制。
|
|
每週一到週五上午9點半執行
|
|
第0秒、30分、9點、日期不指定( |
|
每月1號凌晨1點執行
|
|
第0秒、0分、1點、1號、星期不指定( |
|
每隔5分鐘執行一次
|
|
第0秒、從0分開始每隔5分鐘、日期和星期不限制。
|
|
每天上午9點到下午5點間每半小時執行
|
|
第0秒、從0分開始每30分鐘、在9點到17點之間。
|
|
每月最後一個星期五晚上10點執行
|
|
第0秒、0分、22點、日期不指定( |
⚠️ 給新手的幾個小提示
- 注意星期字段的差異:不同的系統對“星期幾”的設定可能不同。有的系統認為
1是星期日,有的認為是星期一。在使用前,最好確認你所用系統的規定。 - 避免日和周衝突:在一條表達式裏,“日期”和“星期幾”字段最好不要同時設置具體值(可以用
?忽略其中一個),否則可能會產生意想不到的衝突。 - 先測試再使用:在將表達式應用到重要任務之前,可以先用一些在線的Cron表達式生成器或驗證工具模擬一下,看看它未來的執行時間是否符合你的預期。