处理 API 速率限制#
API 速率限制(rate limits)是对请求频率的限制。例如,某个 API 可能会限制你每分钟或每天可以发送的请求数量。 API 还可能限制单个请求中可以发送的数据量,或单次响应中返回的数据量。
识别速率限制问题#
当 n8n 节点触发速率限制时,会产生错误。n8n 会在节点输出面板中显示该错误信息,其中包括服务端返回的具体错误消息。 如果 n8n 收到服务端返回的 429 错误(请求过多),错误信息将显示为:The service is receiving too many requests from you(该服务收到来自你的过多请求)。
要查看你所使用服务的速率限制,请参考该服务的 API 文档。
处理集成中的速率限制#
在 n8n 的集成中处理速率限制有两种方式:使用 重试失败(Retry On Fail) 设置,或结合使用 Loop Over Items 和 Wait 节点:
- 重试失败(Retry On Fail) 在 API 请求尝试之间添加暂停。
- 使用 Loop Over Items 和 Wait 节点,你可以将请求数据拆分为更小的批次,并在请求之间插入延迟。
启用重试失败(Retry On Fail)#
启用“重试失败”后,如果首次请求失败,节点会自动重新尝试该请求。
- 打开目标节点。
- 选择 Settings(设置)。
- 开启 Retry On Fail(失败时重试) 开关。
- 配置重试设置:如果用于规避速率限制,请将 Wait Between Tries (ms)(尝试之间的等待时间,毫秒)设置为超过速率限制的时间间隔。例如,如果你使用的 API 每秒允许一次请求,则应将 Wait Between Tries (ms) 设置为
1000,以实现每次重试之间 1 秒的等待。
使用 Loop Over Items 和 Wait 节点#
使用 Loop Over Items 节点对输入项进行分批处理,并通过 Wait 节点在每次请求之间引入延迟。
- 在调用 API 的节点之前添加 Loop Over Items 节点。有关如何配置此节点的信息,请参阅 Loop Over Items。
- 在调用 API 的节点之后添加 Wait 节点,并将其连接回 Loop Over Items 节点。有关配置说明,请参阅 Wait。
例如,在使用 OpenAI 时处理速率限制:
"使用 Loop Over Items 节点和 Wait 节点处理 OpenAI API 速率限制的工作流截图"
在 HTTP Request 节点中处理速率限制#
HTTP Request 节点内置了处理速率限制和大量数据的设置。
批量请求#
使用“批处理(Batching)”选项可以发送多个请求,减小单个请求的规模,并在请求之间插入暂停。这相当于使用 Loop Over Items 和 Wait 节点的功能。
- 在 HTTP Request 节点中,选择 Add Option > Batching。
- 设置 Items per Batch:即每个请求中包含的输入项数量。
- 设置 Batch Interval (ms) 以在请求之间引入延迟。例如,如果所使用的 API 每秒允许一个请求,则将 Wait Between Tries (ms) 设置为
1000,表示每次尝试之间等待 1 秒。
分页结果#
当 API 需要返回的数据量超过单次响应所能承载的范围时,会对其结果进行分页(paginate)。有关 HTTP Request 节点中分页的更多信息,请参考 HTTP Request 节点 | 分页。