【n8n教程】:Schedule Trigger节点,让工作流自动运行!

【n8n教程】:Schedule Trigger节点,让工作流自动运行!

📌 什么是 Schedule Trigger(定时触发器)?

在日常工作中,是否有些任务需要定期重复?比如每天早上8点发送邮件汇总、每周一检查数据更新、或者每小时同步一次数据?

Schedule Trigger(定时触发器) 就是解决这类问题的完美工具。它让你的 n8n 工作流按照指定的时间表自动运行,就像 Unix 系统中的 Cron 一样。你不需要手动点击"执行"按钮,一切都会自动进行。


点击获取最新AI资讯、n8n工作流、开发经验分享
or 直接搜索V X:undsky

🎯 核心概念速览

概念说明
触发间隔定义工作流运行的时间单位(秒、分、小时、天、周、月或自定义 Cron 表达式)
时区n8n 使用工作流时区或实例时区来计算执行时间
激活状态工作流必须处于激活状态,Schedule Trigger 才能工作
Cron 表达式用于高级时间控制的标准 Unix 命令格式

⚙️ 五种基础调度方式

1️⃣ 按秒数触发

使用场景: 快速测试、高频数据同步

配置方式:

  • Seconds Between Triggers:输入秒数(例:30 = 每30秒运行一次)

示例: 每10秒检查一次 API 状态

秒数:10

2️⃣ 按分钟触发

使用场景: 定期检查系统状态、同步数据

配置方式:

  • Minutes Between Triggers:输入分钟数(例:5 = 每5分钟运行一次)

示例: 每5分钟从 Google Sheets 中读取数据

分钟数:5

3️⃣ 按小时触发

使用场景: 定期生成报告、每小时同步一次数据

配置方式:

  • Hours Between Triggers:输入小时数
  • Trigger at Minute:指定分钟数(0-59)

示例: 每6小时在第30分钟时运行

小时数:6
分钟数:30
(意味着:00:30, 06:30, 12:30, 18:30)

4️⃣ 按天数触发

使用场景: 每天定时发送邮件、每日数据备份

配置方式:

  • Days Between Triggers:输入天数
  • Trigger at Hour:选择运行的小时(0-23)
  • Trigger at Minute:输入分钟数(0-59)

示例: 每两天在上午9点15分运行

天数:2
小时:9
分钟:15
(意味着:周一 09:15, 周三 09:15, 周五 09:15...)

5️⃣ 按周数触发

使用场景: 每周定时任务、周期性报告

配置方式:

  • Weeks Between Triggers:输入周数
  • Trigger on Weekdays:选择运行的工作日(可多选)
  • Trigger at Hour:选择运行小时
  • Trigger at Minute:输入分钟数

示例: 每两周在周一下午3点30分运行

周数:2
工作日:周一
小时:15(3 PM)
分钟:30
(意味着:第1个周一 15:30, 第3个周一 15:30...)

🚀 高级用法:自定义 Cron 表达式

对于复杂的调度需求,你可以使用 Cron 表达式

📖 Cron 表达式结构

n8n 的 Cron 表达式有 6 个字段(包括秒):

秒  分  小时  日期  月份  周几
*   *   *     *    *    *

🔧 常用 Cron 表达式示例

需求Cron 表达式说明
每10秒*/10 * * * * *从每分钟的第10秒开始,每隔10秒运行
每5分钟*/5 * * * *每5分钟运行一次
每小时0 * * * *每小时的整点运行
每天6点0 6 * * *每天早上6点运行
每周一12点0 12 * * 1每周一中午12点运行
每月1号0 0 1 * *每月1号午夜运行
每3天0 0 */3 * *每隔3天午夜运行
工作日9点0 9 * * 1-5周一到周五上午9点运行
工作时间每小时0 9-17 * * *每天9点到17点(工作时间),每小时整点运行
按季度运行0 0 1 1,4,7,10 *1月、4月、7月、10月的1号午夜运行

💡 快速生成 Cron 表达式

不确定如何写 Cron 表达式?访问 Crontab Guru 网站,它提供了可视化编辑器,帮你快速生成和验证表达式。


🛠️ 快速开始:三步设置

步骤 1:添加 Schedule Trigger 节点

  1. 打开或创建一个 n8n 工作流
  2. 点击添加第一步加号按钮
  3. 搜索 “Schedule Trigger”“定时”
  4. 从结果中选择 Schedule Trigger 节点

步骤 2:配置触发间隔

在节点的左侧面板中:

  1. 选择 Trigger Interval(触发间隔)
  2. 根据需求选择时间单位(天、周、月等)
  3. 填入相应的时间参数

示例配置(每天早上8点运行):

Trigger Interval: Days
Days Between Triggers: 1
Trigger at Hour: 8
Trigger at Minute: 0

步骤 3:连接后续节点和激活

  1. 将你的业务逻辑节点(如发送邮件、更新数据库等)连接到 Schedule Trigger
  2. 保存工作流
  3. 点击工作流右上角的切换开关,将状态改为激活
  4. 完成!工作流现在会按照你设定的时间表自动运行

⚠️ 常见问题与解决方案

❌ 问题 1:工作流在错误的时间运行

原因: 时区配置不正确

解决方案:

  • 检查全局时区(云版本用户):进入 Admin 面板 → 设置 → 时区
  • 检查工作流时区:打开工作流 → 右上角三点菜单 → 设置 → 修改时区
  • 保存后重新激活工作流

❌ 问题 2:Cron 表达式错误

错误提示: “Invalid cron expression”

解决方案:

  1. 检查表达式语法是否正确
  2. Crontab Guru 验证表达式
  3. 确保表达式符合 n8n 的六字段格式(包括秒)

❌ 问题 3:修改触发间隔后没有生效

原因: 修改调度参数需要重新激活工作流才能生效

解决方案:

  1. 将工作流切换为停用状态
  2. 修改 Schedule Trigger 的参数
  3. 再次将工作流切换为激活状态

重要提示: 工作流的执行时间从激活时刻开始计算。例如,如果你在 11:30 激活一个"每2小时"的工作流,它会在 13:30 首次运行。


❌ 问题 4:变量在 Cron 表达式中不生效

原因: 变量的值只在工作流激活时评估一次

解决方案: 如果需要修改变量值,必须:

  1. 停用工作流
  2. 修改变量值
  3. 重新激活工作流

💼 实战案例:每日邮件提醒工作流

现在让我们一起构建一个实用的工作流:每天早上8点从 Google Sheets 读取待办事项,并发送邮件提醒

工作流结构

Schedule Trigger (每天8点)
  ↓
Google Sheets: 读取待办事项
  ↓
Code: 格式化数据为 HTML
  ↓
Gmail: 发送邮件

完整工作流 JSON 代码

{
  "nodes": [
    {
      "parameters": {
        "triggerInterval": "days",
        "daysInterval": 1,
        "triggerAtHour": 8,
        "triggerAtMinute": 0
      },
      "id": "1",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [
        250,
        300
      ]
    },
    {
      "parameters": {
        "resource": "spreadsheet",
        "operation": "read",
        "spreadsheetId": "YOUR_SHEET_ID",
        "sheetName": "Tasks",
        "options": {}
      },
      "id": "2",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 3,
      "position": [
        450,
        300
      ]
    },
    {
      "parameters": {
        "code": "// 格式化待办事项为 HTML\nconst tasks = $input.all();\nlet htmlContent = '<h2>📋 今日待办事项</h2><ul>';\n\ntasks.forEach(task => {\n  if (task.json.status === 'Pending') {\n    htmlContent += `<li><strong>${task.json.title}</strong> - ${task.json.description}</li>`;\n  }\n});\n\nhtmlContent += '</ul>';\n\nreturn [{ json: { htmlBody: htmlContent } }];"
      },
      "id": "3",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        650,
        300
      ]
    },
    {
      "parameters": {
        "operation": "sendEmail",
        "toEmail": "your-email@example.com",
        "subject": "📨 今日待办事项提醒",
        "emailType": "html",
        "htmlBody": "={{ $node[\"Code\"].json.htmlBody }}"
      },
      "id": "4",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [
        850,
        300
      ]
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

🔑 设置步骤

  1. 添加 Schedule Trigger 节点

    • 触发间隔:每天(Days)
    • 时间:早上8点
    • 保持其他默认设置
  2. 配置 Google Sheets 节点

    • 选择你的 Google Sheets 账户
    • 输入你的电子表格 ID
    • 选择包含待办事项的工作表名称(如 “Tasks”)
    • 列名称应包括:titledescriptionstatus
  3. 配置 Code 节点

    • 复制上面提供的代码
    • 该代码会自动筛选状态为 “Pending” 的任务,并格式化为 HTML 列表
  4. 配置 Gmail 节点

    • 选择你的 Gmail 账户
    • 填入接收邮件的电子邮件地址
    • 主题:📨 今日待办事项提醒
    • 邮件类型:HTML
    • 邮件正文:链接到 Code 节点的 htmlBody 输出
  5. 保存并激活

    • 点击保存
    • 点击右上角的激活开关
    • 工作流现在会在每天早上8点自动运行

✅ 测试工作流

在完全依赖自动调度之前,先手动测试一下:

  1. 点击任何节点的执行按钮
  2. 检查输出数据是否符合预期
  3. 查看邮件是否正确发送
  4. 一切正常后,再激活工作流

📚 时区完全指南

为什么时区很重要?

如果你在纽约,但 n8n 实例在伦敦,时区差异可能导致工作流在错误的时间运行。

三层时区设置(优先级从高到低)

  1. 工作流级别时区(最优先)

    • 打开工作流 → 右上角三点菜单 → 设置
    • 在 Timezone 下拉菜单选择你的时区
    • 保存更改
  2. n8n 实例时区(次优先)

    • 云版本:进入 Admin 面板 → 设置 → 修改时区
    • 自托管版本:设置环境变量 GENERIC_TIMEZONE

    示例(Linux/Mac):

    export GENERIC_TIMEZONE="Asia/Shanghai"
    
  3. 系统时区(如果以上都未设置)

    • 自托管默认为 “America/New_York”
    • 云版本默认为 “GMT”

🌍 常用时区代码

地区时区代码
中国Asia/Shanghai
纽约America/New_York
伦敦Europe/London
东京Asia/Tokyo
悉尼Australia/Sydney
印度Asia/Kolkata
新加坡Asia/Singapore

🎓 最佳实践

✅ 应该这样做

  1. 总是测试你的工作流——在完全自动化之前,使用手动执行测试
  2. 选择低峰时段运行——避免在高流量时段执行资源密集型任务(比如半夜运行备份)
  3. 使用明确的名称——给工作流起清晰的名字(如"Daily Email at 8 AM")
  4. 监控执行日志——定期检查 Executions 标签,确保工作流按预期运行
  5. 记录你的 Cron 表达式——在工作流中添加注释说明为什么选择这个时间表

❌ 应该避免

  1. 不要在秒级频率下运行重型工作——会消耗大量资源
  2. 不要忘记激活工作流——很多人设置后忘记激活
  3. 不要在生产环境中测试——先在测试工作流中调试
  4. 不要忽视时区问题——错误的时区会导致工作流在意想不到的时间运行
  5. 不要使用太复杂的 Cron 表达式——使用基础配置往往更清晰可维护

🎯 总结

Schedule Trigger 是 n8n 中最强大的功能之一,它将一次性任务转变为持久的自动化流程。通过掌握以下几点,你可以构建无数有用的自动化:

  • ✅ 理解基础的触发间隔配置(秒、分、小时、天、周、月)
  • ✅ 学会使用 Cron 表达式处理复杂的调度需求
  • ✅ 正确配置时区,确保工作流在预期时间运行
  • ✅ 激活工作流并监控执行状态
  • ✅ 遵循最佳实践,构建可靠的自动化系统

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

undsky_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值