Skip to content

处理 API 速率限制#

API 速率限制是对请求频率的限制。例如,一个 API 可能会限制您每分钟或每天可以发出的请求数量。

API 还可能限制您在一次请求中可以发送的数据量,或者 API 在单个响应中发送的数据量。

识别速率限制问题#

当 n8n 节点遇到速率限制时,会报错。n8n 会在节点输出面板中显示错误信息,包括来自服务的错误消息。

如果 n8n 从服务收到 429 错误(请求过多),错误信息将是 服务正在接收来自您的过多请求

要检查您正在使用的服务的速率限制,请参考该服务的 API 文档。

处理集成中的速率限制#

在 n8n 的集成中有两种处理速率限制的方法:使用"失败重试"设置,或者结合使用循环处理项目等待节点:

  • 失败重试会在 API 请求尝试之间添加暂停
  • 使用循环处理项目和等待节点可以将请求数据分成更小的块,并在请求之间暂停

启用失败重试#

当您启用失败重试时,节点会在第一次失败后自动重试请求。

  1. 打开节点
  2. 选择设置
  3. 启用失败重试开关
  4. 配置重试设置:如果用于解决速率限制问题,将重试间隔时间(毫秒)设置为超过速率限制的时间。例如,如果您使用的 API 允许每秒一个请求,将重试间隔时间(毫秒)设置为1000以允许1秒的等待。

使用 Loop Over Items 和 Wait 节点#

使用 Loop Over Items 节点对输入项进行分批处理,并通过 Wait 节点在每次请求之间添加暂停。

  1. 在调用 API 的节点前添加 Loop Over Items 节点。有关如何配置该节点,请参考 Loop Over Items
  2. 在调用 API 的节点后添加 Wait 节点,并将其连接回 Loop Over Items 节点。有关如何配置该节点,请参考 Wait

例如,处理 OpenAI API 的速率限制时:

"使用 Loop Over Items 节点和 Wait 节点处理 OpenAI API 速率限制的工作流截图"

在 HTTP Request 节点中处理速率限制#

HTTP Request 节点内置了处理速率限制和大数据量的设置。

批量请求#

使用 Batching 选项发送多个请求,减小请求规模,并在请求之间添加暂停。这相当于使用 Loop Over Items 和 Wait 节点的组合。

  1. 在 HTTP Request 节点中,选择 Add Option > Batching
  2. 设置 Items per Batch:这是每个请求中包含的输入项数量。
  3. 设置 Batch Interval (ms) 以在请求之间添加延迟。例如,如果使用的 API 允许每秒一个请求,将 Wait Between Tries (ms) 设为 1000 以实现 1 秒的等待。

分页结果#

当 API 需要发送超过单次响应处理能力的数据时,会采用分页机制。有关 HTTP Request 节点中的分页功能,请参阅 HTTP Request 节点 | 分页