Execution 执行机制 · 一次运行发生了什么
每次你点 “Test workflow” 或触发器自动启动,n8n 都会在内部跑一次Execution。理解 Execution 的生命周期,是你后续调试一切问题的基础。
Execution 是什么
Section titled “Execution 是什么”一次 Execution = 从触发开始,到所有分支跑完(或某个节点挂掉)为止的一整次运行记录。
每个 Execution 会被存到数据库里(Cloud / Docker / Desktop 都是),你随时能去底部 Executions tab 翻历史。
执行模式:3 种
Section titled “执行模式:3 种”| 模式 | 什么时候用 | 特点 |
|---|---|---|
| Manual(手动) | 开发调试 | 必须打开编辑器,按 Test 按钮才跑 |
| Trigger(自动) | 生产部署 | Workflow 处于 Active 状态,触发器满足条件就自动跑 |
| Webhook | 外部系统调用 | 收到 HTTP 请求时跑,只在 Active 状态下生效 |
Pinned Data:调试神器
Section titled “Pinned Data:调试神器”开发时你可能要反复试,每次都让真实数据流一遍很慢(比如 HTTP Request 调外部 API)。
n8n 支持把任意节点的当前输出”钉住”——之后所有运行都用这份钉住的数据,不再真的调外部服务。
操作:节点输出面板右上角 → “Pin data”。再次运行时该节点显示个”图钉”图标。
# 没钉住:每次都真的 GET 一次 GitHub ▶ HTTP Request → GET api.github.com/… → 340ms # 钉住后:直接用钉住的 JSON,0ms 跳过 📌 HTTP Request → (use pinned data) → 0ms → 调试速度提升 100x,且不耗 API quota
记得调通后取消 Pin(同位置点 Unpin),不然生产环境也会用假数据。
查日志:底部 Executions 面板
Section titled “查日志:底部 Executions 面板”每个节点跑完,点节点 → 输出 tab,能看到该节点在最近一次 Execution 里的输入和输出。
如果想看历史 Execution:
- 底部 Executions tab → 列出最近 N 条
- 点任意一条 → 用”幽灵模式”重现整个 workflow 的执行状态
- 旁边的 Retry 按钮 → 拿这次的 input 数据重跑一次
任何节点抛错 → 整个 Execution 状态为 error → 后续节点不再执行。
错误节点在画布上会标红色感叹号。点它看 Errors tab 能看到错误信息。
# Slack 节点配错了 channel ✗ Slack: channel_not_found // upstream node 仍执行成功,下游不再执行 解决: 1. 看 Settings → “Continue On Fail” 开关 2. 或加 Error Trigger 单独捕获错误(第 4 部分讲)
Execution 数据保留
Section titled “Execution 数据保留”n8n 默认保留所有 Execution 数据。日积月累数据库会膨胀。
生产环境记得配 EXECUTIONS_DATA_PRUNE_MAX_COUNT(保留多少条)或 EXECUTIONS_DATA_MAX_AGE(保留多久)。
# Docker 环境变量示例 EXECUTIONS_DATA_PRUNE=true EXECUTIONS_DATA_MAX_AGE=336 # 14 天(小时单位) EXECUTIONS_DATA_PRUNE_MAX_COUNT=10000 # 最多保留 1 万条
本节要点回顾
Section titled “本节要点回顾”- 一次运行 = 一次 Execution,每条都被记录
- 三种模式:Manual / Trigger / Webhook
- Active 开关决定触发器是否在后台生效
- Pin data 是调试神器,但调通后记得 Unpin
- 错误后下游不执行,可通过 Continue On Fail 或 Error Trigger 处理(第 4 部分)
- 生产记得配 Execution 数据清理策略
至此你已学完 第 1 部分。下一部分我们开始学节点——从最重要的触发器全景开始。