自托管并发控制#
仅适用于自托管的n8n
本文档适用于自托管的并发控制。阅读云并发了解并发在n8n云账户中的工作原理。
在常规模式下,n8n不会限制同时运行的生产执行数量。这可能导致过多并发执行争抢事件循环,造成性能下降和响应迟缓的情况。
为避免这种情况,您可以为常规模式下的生产执行设置并发限制。通过此设置控制同时运行的生产执行数量,并将超出限制的并发生产执行任务加入队列。这些执行任务将保留在队列中,直到有并发容量释放,然后按照先进先出(FIFO)的顺序进行处理。
并发控制默认是禁用的。要启用它:
1 | |
请注意:
- 并发控制仅适用于生产环境执行:即由webhook或trigger节点触发的执行。不适用于其他类型,例如手动执行、子工作流执行、错误执行或从CLI启动的执行。
- 无法重试队列中的执行。取消或删除队列中的执行也会将其从队列中移除。
- 在实例启动时,n8n会恢复排队中的执行任务直至达到并发限制,其余任务将重新加入队列。
- 要监控并发控制,请观察日志中执行任务被加入队列和释放的情况。在未来的版本中,n8n将在用户界面显示并发控制功能。
启用并发控制后,您可以在项目或工作流执行选项卡顶部查看活动执行数量和配置的限制。
与队列模式的比较#
在队列模式下,您可以使用--concurrency flag来控制一个工作线程可以同时运行多少个任务。
队列模式下的并发控制是一个独立于常规模式并发控制的机制,但环境变量N8N_CONCURRENCY_PRODUCTION_LIMIT同时控制着两者。在队列模式下,如果该变量设置为非-1的值,n8n会采用此限制值,否则回退到--concurrency参数或其默认值。