【n8n教程】:执行工作流——从手动测试到生产自动化

【n8n教程】:执行工作流——从手动测试到生产自动化

n8n 工作流执行是 n8n 自动化的心脏。无论你是在开发阶段调试工作流,还是让它在生产环境中自动运行,理解执行的方式至关重要。本教程将带你从零开始,深入掌握 n8n 的各种执行模式、调试技巧,以及如何管理和优化工作流执行。


第一部分:执行基础概念

什么是执行(Execution)?

执行就是工作流的一次运行。每次工作流从开始到结束的完整流程,n8n 都会记录下来。你可以查看每次执行的详细信息,包括数据流、错误信息、执行时长等。

n8n 提供了两种执行模式:

1. 手动执行(Manual Execution)
  • 使用场景:开发和测试时使用
  • 触发方式:点击"Execute Workflow"按钮手动运行
  • 特点
    • 只在你明确点击按钮时才执行
    • 非常适合逐步测试工作流逻辑
    • 可以测试条件分支、数据格式变化、循环行为等
    • 支持数据钉住(Pinning),可以"冻结"某个节点的输出数据
2. 生产执行(Production Execution)
  • 使用场景:真实生产环境,自动化处理
  • 触发方式:配置触发器(任何非手动触发的触发器),然后将工作流设置为"Active"
  • 特点
    • 根据触发条件自动运行(如定时触发、事件触发等)
    • 执行过程不显示在编辑器中
    • 所有执行数据记录在"Executions"选项卡中
    • 忽略所有钉住的数据

第二部分:执行列表详解

工作流级别的执行列表

在工作流中选择 Executions 选项卡,你可以看到该工作流的所有执行记录。

如何筛选执行?
  1. 点击 Filters 按钮
  2. 按以下条件筛选:
    • Status(状态):Failed(失败)、Running(运行中)、Success(成功)、Waiting(等待)
    • Execution start(执行开始时间):查看特定时间段的执行
    • Saved custom data(自定义数据):按你在工作流中添加的自定义数据筛选

全局执行列表

在 n8n 首页点击 Executions 选项卡,你可以看到整个 n8n 实例所有工作流的执行记录。这对于监控所有自动化任务非常有用。


第三部分:手动、部分和生产执行的区别

手动执行(Manual Execution)

核心特性:让你在开发过程中快速迭代测试

优点:
✅ 完整的工作流运行
✅ 实时查看数据流
✅ 支持修改输入数据进行测试
✅ 支持数据钉住功能

使用场景示例

  • 新增了一个节点,需要测试它是否正确处理数据
  • 修改了条件逻辑,需要用不同的输入数据进行测试
  • 想快速验证 API 连接是否工作正常

部分执行(Partial Execution)

核心特性:只运行工作流的一部分,而不是整个流程

如何使用

  1. 选择你想执行的节点
  2. 打开其详细视图
  3. 点击 Execute step 按钮
  4. n8n 将执行该节点及其所有前置节点(用以填充该节点的输入数据)

为什么要用部分执行?

  • 效率:不用每次都重新调用外部 API
  • 快速迭代:快速测试某个节点的逻辑变化
  • 成本:避免不必要的 API 调用

常见错误及解决方案

  1. “目标节点未连接任何触发器”

    • 原因:部分执行需要一个触发器来模拟工作流何时运行
    • 解决:添加一个手动触发器到你的工作流
  2. “请执行整个工作流,而不是单个节点(现有执行数据过大)”

    • 原因:工作流分支过多,超过了部分执行允许的消息大小
    • 解决:使用 Limit 节点限制输出数据量

生产执行(Production Execution)

核心特性:在真实场景中自动运行

配置步骤

  1. 添加一个触发器节点(例如:Schedule、Webhook、On File Event 等)
  2. 将工作流的状态设置为 Active
  3. 工作流现在会根据触发条件自动执行

重要提示

  • 生产执行忽略所有钉住的数据
  • 所有执行都被记录在 Executions 选项卡中
  • 可以使用"Debug in editor"功能调试失败的生产执行

第四部分:重要概念——脏节点(Dirty Nodes)

什么是脏节点?

脏节点是指那些曾经成功执行过,但现在输出数据被认为"过期"或"不可靠"的节点。在画布上,脏节点会显示一个黄色三角形而不是绿色勾号。

n8n 为什么标记节点为脏?

以下操作会导致节点被标记为脏:

  • 插入或删除节点:后续节点会被标记为脏
  • 修改节点参数:该节点被标记为脏
  • 添加新连接:目标节点被标记为脏
  • 停用节点:后续节点被标记为脏
  • 取消钉住数据:该节点被标记为脏
  • 修改钉住数据:后续节点被标记为脏

如何解决脏节点?

方法很简单——重新执行该节点

你可以:

  1. 点击 Execute step 按钮执行该节点
  2. 或执行整个工作流
  3. 脏状态会自动清除

第五部分:数据钉住(Data Pinning)

什么是数据钉住?

数据钉住让你可以"冻结"某个节点的输出数据。在后续执行中,n8n 会跳过该节点的执行,直接使用钉住的数据继续流程。

为什么要用数据钉住?

场景1:你在测试一个从 API 获取的大量数据
✅ 第一次执行 API 调用获取数据
✅ 钉住这个数据
✅ 后续执行直接用钉住的数据,不再调用 API
✅ 快速测试后续节点的逻辑,节省时间和 API 配额

场景2:测试复杂的条件分支
✅ 钉住某个中间节点的数据
✅ 快速测试不同的分支逻辑
✅ 无需每次都重新执行前面的所有节点

如何钉住数据?

  1. 在工作流编辑器中选择一个节点
  2. 查看右侧面板的输出数据
  3. 点击 Pin data 按钮
  4. 数据被钉住后,会看到一个图钉图标

重要:生产环境忽略钉住数据

当工作流处于 Active(生产环境)时,所有钉住的数据都会被忽略。只有在手动执行和开发时,钉住的数据才会起作用。


第六部分:调试与重新运行过去的执行

调试失败的生产执行

n8n 提供了强大的调试功能,让你可以在编辑器中重新运行过去的失败执行。

步骤:
  1. 在工作流中打开 Executions 选项卡
  2. 找到你想调试的失败执行
  3. 点击 Debug in editor 按钮
  4. n8n 会:
    • 将该执行的数据加载到当前工作流
    • 在第一个节点钉住这些数据
    • 让你在编辑器中重新运行工作流
  5. 修改工作流逻辑来修复问题
  6. 再次执行测试修复是否有效

重新运行成功的执行

有时你想用之前成功的执行数据来验证新的逻辑:

  1. 在 Executions 列表中选择一个成功的执行
  2. 点击 Copy to editor
  3. 数据会被加载到你的编辑器中
  4. 现在你可以修改工作流并用这些真实数据进行测试

重试失败的执行

有两种重试方式:

方式1:用当前保存的工作流重试

  • 使用当前版本的工作流逻辑
  • 使用原始执行的数据
  • 场景:你已修复工作流,想用相同的输入数据验证修复

方式2:用原始工作流重试

  • 使用原始的工作流版本
  • 使用原始执行的数据
  • 场景:你想重新运行看是否偶然成功(例如处理临时的 API 问题)

第七部分:自定义执行数据

什么是自定义执行数据?

你可以在工作流运行时添加自定义元数据,n8n 会将其记录下来。这些数据可以用于:

  • 筛选执行列表
  • 在工作流中查询和使用

如何添加自定义执行数据?

使用 Code 节点

// 添加单条自定义数据
$input.first().item.json
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

undsky_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值