n8n 進階排程觸發節點(Schedule Trigger)(03):Cron 排程表達式語法、時區設定與常見坑位避雷排程觸發節點

當「每 5 分鐘」已經不夠用,你需要的是 Cron:以一行表達式,精準指定「什麼時候」執行——像是每月第 1 天 09:30、每季第一天 00:00、或週一到週五 09–17 點整點。

本篇用實務角度帶你一次搞懂 Cron 六欄位結構(含秒)、常見範式(每 X 分鐘/只工作日/自訂時段)、以及 時區與變數評估時機 這兩個最容易踩雷的點。

你也會拿到一份除錯清單,幫你迅速定位「為什麼沒在預期時間跑」。

你將掌握:

  • Cron 六欄位結構:(秒) 分 時 日 月 週(秒可省略)與典型範式
  • 何時用 Cron、何時用間隔(秒/分/時/日/週/月)的判斷心法
  • 時區優先序與設定:全域 vs. 單一工作流程(避免跑錯時間)
  • 變數只在啟用當下評估的規則與重新啟用的必要性
  • 變更排程後「從啟用時間重新起算」的時間軸觀念
  • 常見錯誤與快速修復:無效表達式、時區不對、變數未生效
timezone settings interface in workflow configuration panel

自定義(Cron)間隔

輸入自定義的 cron 表達式(Expression)來設置觸發器的排程。

要生成 Cron 表達式,您可以使用 crontab guruchatgpt

將使用生成的 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 expression structure diagram showing the six positions

Cron 表達式結構

Cron 表達式的六個位置

(*) * * * * *

(秒) 分鐘 小時 月份日 月 星期幾(週日-週六)

在 Cron 表達式中使用變量:

雖然可以在排程觸發器中使用變量,但它們的值僅在工作流程激活時進行評估。

如果在工作流程激活後更改變量的值,更改不會改變 cron 排程。

要重新評估變量,請將工作流程設置為「非活動」,然後再設置回「活動」。

排程觸發節點常見問題

無效的 cron 表達式

當您將觸發間隔設置為自定義(Cron)且 n8n 無法理解您的 cron 表達式時,會發生此錯誤。

解決方法:檢查您的 cron 表達式是否遵循示例中使用的語法,並在 crontab guru 上驗證。

排程工作流程在錯誤的時間運行

如果排程觸發節點在錯誤的時間運行,可能意味著您需要調整 n8n 使用的時區。

解決方法:調整全局時區或單個工作流程的時區。

調整時區設置

全局調整時區

  • n8n Cloud:按照「設置 Cloud 實例時區」頁面上的說明操作
  • 自託管:使用 GENERIC_TIMEZONE 環境變量設置全局時區

調整單個工作流程的時區

  1. 在畫布上打開工作流程
  2. 選擇右上角的「三點圖標」
  3. 選擇「設置」
  4. 更改「時區」設置
  5. 選擇「保存」

排程觸發器的其他常見問題

變量不按預期工作

雖然可以在排程觸發器中使用變量,但它們的值僅在工作流程激活時進行評估。激活工作流程後,您可以在設置中更改變量的值,但這不會改變工作流程運行的頻率。要解決此問題,您必須停止然後重新激活工作流程以應用更新的變量值。

更改觸發間隔

您可以隨時更新排程的觸發間隔,但只有在工作流程激活時才會更新。如果在工作流程處於活動狀態後更改觸發間隔,則更改將不會生效,直到您停止然後重新激活工作流程。

此外,排程從激活工作流程的時間開始。例如,如果您最初設置了每 1 小時的排程,應該在 12:00 執行,如果您將其更改為 2 小時排程並在 11:30 重新激活工作流程,則下一次執行將在 13:30,即從激活時間起 2 小時。

business professional analyzing workflow automation results on computer screen

總結

  • 寫對表達式:用 crontab.guru 產生/驗證,記得 n8n 支援「秒」欄位;能用簡單間隔就別硬上 Cron。
  • 時區先釘死:優先在「工作流程設定」指定正確時區(如 Asia/Taipei);自託管可用 GENERIC_TIMEZONE 設全域。
  • 變數與排程改動要「重啟用」:Cron 會在啟用瞬間讀入變數;之後改值或改排程,必須停用→再啟用才會生效。
  • 從啟用時間起算:改「每 2 小時」並於 11:30 重新啟用,下一次就是 13:30。
  • 除錯清單
    1. 表達式是否有效;
    2. 工作流程是否已「啟用」;
    3. 時區是否正確;
    4. 最近是否有重新「停用→啟用」;
    5. 是否被其他觸發規則或併發鎖影響。

把這幾個關鍵動作做好,你的 n8n Cron 排程就會準點、可預測、好維護

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端