n8n 工作流上线前可靠性检查:不是“跑通一次”就算完成
这是一份待实验逐项验证的上线协议。它把输入、幂等、重试、人工审核、日志、备份和恢复变成可以留下证据的检查项,而不是一句“加个错误处理”。
这份清单是什么
一条工作流在编辑器里成功一次,只能证明某组输入在某个时刻没有触发错误。生产可靠性需要回答另外的问题:重复请求会不会重复写入、第三方返回 429 时是否退避、凭据失效后谁会收到告警、恢复后是否会漏处理。
本页是 AI Brief Note 后续实验的统一协议。当前版本是方法,不是完成后的实测报告。每一项只有在证据文件存在时才可标记为通过。
先锁定测试条件
| 字段 | 必填记录 | 原因 |
|---|---|---|
| n8n 版本 | 完整版本号和镜像摘要 | 同一节点在不同版本可能变化 |
| 部署方式 | Cloud、Docker、npm 或队列模式 | 并发与存储行为不同 |
| 数据库 | SQLite/Postgres 与版本 | 影响并发和恢复 |
| 工作流文件 | 导出的 JSON 与提交哈希 | 确保复现的是同一版本 |
| 输入数据 | 脱敏样本和数量 | 防止只挑成功样本 |
| 外部服务 | API 版本、区域与限流规则 | 失败可能来自依赖 |
| 测试时间 | 时区和起止时间 | 价格、网络与服务会变化 |
正常路径至少跑 100 次
100 次不是统计学保证,只是本站第一阶段用于暴露偶发问题的最低实验规模。记录不能只保留平均值,至少要保存成功状态、错误类型、总耗时和需要计费的外部调用。
| 指标 | 计算方式 | 为什么保留 |
|---|---|---|
| 成功率 | 成功次数 ÷ 总次数 | 直接观察失败比例 |
| P50 耗时 | 第 50 百分位 | 代表典型体验 |
| P95 耗时 | 第 95 百分位 | 暴露长尾等待 |
| 重试次数 | 自动与人工重试总和 | 估算隐藏成本 |
| 重复写入 | 重复业务键数量 | 检查幂等是否有效 |
| 单次成本 | API 与基础设施增量成本 | 估算规模化账单 |
必须主动制造的失败
不制造失败,就无法证明恢复路径存在。第一批实验至少注入下面五类异常。
| 故障 | 注入方式 | 通过条件 |
|---|---|---|
| 超时 | 延迟响应超过节点超时 | 有界重试并进入明确失败状态 |
| 429 限流 | 返回 Retry-After 或固定 429 | 遵守退避,不形成重试风暴 |
| 500 错误 | 第三方连续失败 | 告警包含执行 ID 和输入摘要 |
| 重复 Webhook | 重放同一业务键 | 目标系统只产生一个业务结果 |
| 凭据失效 | 使用专用测试凭据撤销权限 | 不泄露密钥,责任人收到告警 |
错误工作流不等于恢复
n8n 支持错误工作流和执行日志,但“收到失败通知”与“业务已恢复”是两件事。告警里应包含能定位问题但不暴露敏感信息的字段:工作流、执行 ID、时间、错误类别、脱敏业务键和下一步动作。
自动重试必须有上限。对于可能造成付款、发信、创建记录的节点,重试前要先建立幂等键或查询目标状态,否则一次网络超时可能变成两次业务操作。
人工审核要有超时分支
涉及公开发布、对外发送、删除、付款或高风险判断时,人工审核节点不能只有“同意”路径。还应定义拒绝、超时、撤回和审核人不可用时的处理。
| 审核状态 | 需要记录 | 默认动作 |
|---|---|---|
| 同意 | 审核人、时间、版本 | 继续执行 |
| 拒绝 | 原因和需修改字段 | 停止并回到修订 |
| 超时 | 等待时长和提醒次数 | 停止,不自动视为同意 |
| 撤回 | 发起人和原因 | 取消剩余节点 |
备份必须用恢复来验证
看到备份文件不代表能恢复。每个实验环境需要记录备份时间、文件校验值、恢复步骤、恢复耗时和恢复后抽查结果。恢复演练应在隔离环境完成,不能用生产库做首次试验。
发布时必须附带什么
一个“已验证”实验至少公开工作流 JSON、环境清单、脱敏运行记录、失败样本、截图、计算公式和限制。密钥、Cookie、个人数据和内部地址必须在进入仓库前清除。
当其中任何一项缺失,文章只能标记为研究笔记或进行中,不能把方法写成结果。本站会在后续每个实验页显示证据包是否齐全。
来源与核验日期
- n8n 官方文档:错误工作流、停止并报错节点与错误处理机制。 · 已核验 · official_site_checked_2026-07-23
- n8n 官方文档:执行记录、执行数据与调试。 · 已核验 · official_site_checked_2026-07-23