Skip to content

处理 API 速率限制

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

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

识别速率限制问题

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

如果 n8n 从服务收到错误 429(请求过多),则错误消息为服务从您那里收到过多请求

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

处理集成的速率限制

有两种方法可以处理 n8n 集成中的速率限制:使用“失败时重试”设置,或使用“循环项目”“等待”节点的组合:

  • 失败时重试会在 API 请求尝试之间添加暂停。
  • 使用循环项目和等待,您可以将请求数据分解为更小的块,以及在请求之间暂停。

启用失败重试

当您启用“失败时重试”时,如果第一次失败,节点会自动再次尝试该请求。

  1. 打开节点。
  2. 选择“设置”
  3. 启用“失败时重试”切换。
  4. 配置重试设置:如果使用此设置来绕过速率限制,请将“尝试间隔时间 (毫秒)”设置为大于速率限制的值。例如,如果您使用的 API 允许每秒发送一个请求,请将“尝试间隔时间 (毫秒)”设置为允许等待 1 秒。

使用循环遍历项目并等待

使用 Loop Over Items 节点对输入项进行批处理,并使用 Wait 节点在每个请求之间引入暂停。

  1. 在调用 API 的节点前添加“循环遍历项目”节点。有关如何配置该节点的信息,请参阅“循环遍历项目”
  2. 在调用 API 的节点后添加 Wait 节点,并将其连接回 Loop Over Items 节点。有关如何配置该节点的信息,请参阅Wait

例如,在使用 OpenAI 时处理速率限制:

“使用 Loop Over Items 节点和 Wait 节点来处理 OpenAI API 的 API 速率限制的工作流程的屏幕截图”

处理 HTTP 请求节点中的速率限制

HTTP 请求节点具有内置设置,用于处理速率限制和大量数据。

批量请求

使用“批处理”选项可以发送多个请求,从而减少请求大小,并在请求之间引入暂停。这相当于使用“循环处理项目”并“等待”。

  1. 在 HTTP 请求节点中,选择添加选项>批处理
  2. 设置每批项目数:这是每个请求中要包含的输入项目数。
  3. 设置批处理间隔(毫秒)以在请求之间引入延迟。例如,如果您使用的 API 允许每秒发送一个请求,请将“尝试间隔(毫秒)”设置为允许等待 1 秒。

对结果进行分页

当 API 需要发送的数据量超出其单次响应的处理能力时,它们会对结果进行分页。有关 HTTP 请求节点中分页的更多信息,请参阅HTTP 请求节点 | 分页