Skip to content

自托管并发控制#

仅适用于自托管 n8n

本文档介绍自托管环境下的并发控制。如需了解 n8n Cloud 账户的并发机制,请阅读云并发控制

在常规模式下,n8n 不会限制同时运行的生产执行数量。这可能导致过多并发执行使事件循环过载,造成性能下降和系统无响应。

为防止这种情况,您可以为常规模式下的生产执行设置并发限制。通过此功能控制并发生产执行的数量,并将超出限制的并发生产执行放入队列。这些执行会保持在队列中,直到有并发容量释放,然后按先进先出(FIFO)顺序处理。

并发控制默认处于禁用状态。启用方式如下:

1
export N8N_CONCURRENCY_PRODUCTION_LIMIT=20

注意事项:

  • 并发控制仅适用于生产执行:即由 webhook 或触发器节点启动的执行。不适用于其他类型,如手动执行、子工作流执行、错误执行或通过 CLI 启动的执行。
  • 无法重试队列中的执行。取消或删除队列中的执行会将其从队列移除。
  • 实例启动时,n8n 会恢复队列中的执行直至达到并发限制,其余执行保持排队状态。
  • 要监控并发控制,请查看日志中执行加入队列和释放的记录。未来版本中,n8n 将在 UI 中显示并发控制状态。

启用并发控制后,您可以在项目或工作流的执行选项卡顶部查看活跃执行数量和配置的限制值。

与队列模式的对比#

在队列模式下,您可以使用 --concurrency 参数来控制一个工作线程可以并发运行多少个任务。

队列模式中的并发控制机制与常规模式中的并发控制是分开的,但环境变量 N8N_CONCURRENCY_PRODUCTION_LIMIT 会同时控制这两种模式。在队列模式下,如果该变量被设置为 -1 以外的值,n8n 会优先采用这个变量值作为限制,否则回退到 --concurrency 参数或其默认值。