當「每 5 分鐘」已經不夠用,你需要的是 Cron:以一行表達式,精準指定「什麼時候」執行——像是每月第 1 天 09:30、每季第一天 00:00、或週一到週五 09–17 點整點。
本篇用實務角度帶你一次搞懂 Cron 六欄位結構(含秒)、常見範式(每 X 分鐘/只工作日/自訂時段)、以及 時區與變數評估時機 這兩個最容易踩雷的點。
你也會拿到一份除錯清單,幫你迅速定位「為什麼沒在預期時間跑」。
你將掌握:
- Cron 六欄位結構:
(秒) 分 時 日 月 週
(秒可省略)與典型範式 - 何時用 Cron、何時用間隔(秒/分/時/日/週/月)的判斷心法
- 時區優先序與設定:全域 vs. 單一工作流程(避免跑錯時間)
- 變數只在啟用當下評估的規則與重新啟用的必要性
- 變更排程後「從啟用時間重新起算」的時間軸觀念
- 常見錯誤與快速修復:無效表達式、時區不對、變數未生效
自定義(Cron)間隔
輸入自定義的 cron 表達式(Expression)來設置觸發器的排程。
要生成 Cron 表達式,您可以使用 crontab guru 或 chatgpt。
將使用生成的 Cron 表達式貼到 n8n 中的表達式字段。
Cron 表達式示例
類型 | Cron 表達式 | 描述 |
每 X 秒 | */10 * * * * * | 每 10 秒 |
每 X 分鐘 | */5 * * * * | 每 5 分鐘 |
每小時 | 0 * * * * | 每小時整點 |
每天 | 0 6 * * * | 每天上午 6:00 |
每週 | 0 12 * * 1 | 每週一中午 |
每月 | 0 0 1 * * | 每月 1 日午夜 |
更多 Cron 表達式示例
類型 | Cron 表達式 | 描述 |
每 X 天 | 0 0 */3 * * | 每 3 天午夜 |
僅工作日 | 0 9 * * 1-5 | 週一至週五上午 9:00 |
自定義小時範圍 | 0 9-17 * * * | 每天上午 9:00 至下午 5:00 每小時 |
季度 | 0 0 1 1,4,7,10 * | 1 月、4 月、7 月和 10 月 1 日午夜 |
注意:Cron 表達式中的第六個星號代表秒。設置這個是可選的,即使您不設置秒的值,節點也會執行。
Cron 表達式結構
Cron 表達式的六個位置
(*) * * * * *
(秒) 分鐘 小時 月份日 月 星期幾(週日-週六)
在 Cron 表達式中使用變量:
雖然可以在排程觸發器中使用變量,但它們的值僅在工作流程激活時進行評估。
如果在工作流程激活後更改變量的值,更改不會改變 cron 排程。
要重新評估變量,請將工作流程設置為「非活動」,然後再設置回「活動」。
排程觸發節點常見問題
無效的 cron 表達式
當您將觸發間隔設置為自定義(Cron)且 n8n 無法理解您的 cron 表達式時,會發生此錯誤。
解決方法:檢查您的 cron 表達式是否遵循示例中使用的語法,並在 crontab guru 上驗證。
排程工作流程在錯誤的時間運行
如果排程觸發節點在錯誤的時間運行,可能意味著您需要調整 n8n 使用的時區。
解決方法:調整全局時區或單個工作流程的時區。
調整時區設置
全局調整時區
- n8n Cloud:按照「設置 Cloud 實例時區」頁面上的說明操作
- 自託管:使用 GENERIC_TIMEZONE 環境變量設置全局時區
調整單個工作流程的時區
- 在畫布上打開工作流程
- 選擇右上角的「三點圖標」
- 選擇「設置」
- 更改「時區」設置
- 選擇「保存」
排程觸發器的其他常見問題
變量不按預期工作
雖然可以在排程觸發器中使用變量,但它們的值僅在工作流程激活時進行評估。激活工作流程後,您可以在設置中更改變量的值,但這不會改變工作流程運行的頻率。要解決此問題,您必須停止然後重新激活工作流程以應用更新的變量值。
更改觸發間隔
您可以隨時更新排程的觸發間隔,但只有在工作流程激活時才會更新。如果在工作流程處於活動狀態後更改觸發間隔,則更改將不會生效,直到您停止然後重新激活工作流程。
此外,排程從激活工作流程的時間開始。例如,如果您最初設置了每 1 小時的排程,應該在 12:00 執行,如果您將其更改為 2 小時排程並在 11:30 重新激活工作流程,則下一次執行將在 13:30,即從激活時間起 2 小時。
總結
- 寫對表達式:用 crontab.guru 產生/驗證,記得 n8n 支援「秒」欄位;能用簡單間隔就別硬上 Cron。
- 時區先釘死:優先在「工作流程設定」指定正確時區(如
Asia/Taipei
);自託管可用GENERIC_TIMEZONE
設全域。 - 變數與排程改動要「重啟用」:Cron 會在啟用瞬間讀入變數;之後改值或改排程,必須停用→再啟用才會生效。
- 從啟用時間起算:改「每 2 小時」並於 11:30 重新啟用,下一次就是 13:30。
- 除錯清單:
- 表達式是否有效;
- 工作流程是否已「啟用」;
- 時區是否正確;
- 最近是否有重新「停用→啟用」;
- 是否被其他觸發規則或併發鎖影響。
把這幾個關鍵動作做好,你的 n8n Cron 排程就會準點、可預測、好維護。