处理 API 速率限制#
API 速率限制是对请求频率的限制。例如,一个 API 可能会限制您每分钟或每天可以发出的请求数量。
API 还可能限制您在一次请求中可以发送的数据量,或者 API 在单个响应中发送的数据量。
识别速率限制问题#
当 n8n 节点遇到速率限制时,会报错。n8n 会在节点输出面板中显示错误信息,包括来自服务的错误消息。
如果 n8n 从服务收到 429 错误(请求过多),错误信息将是 服务正在接收来自您的过多请求。
要检查您正在使用的服务的速率限制,请参考该服务的 API 文档。
处理集成中的速率限制#
在 n8n 的集成中有两种处理速率限制的方法:使用"失败重试"设置,或者结合使用循环处理项目和等待节点:
- 失败重试会在 API 请求尝试之间添加暂停
- 使用循环处理项目和等待节点可以将请求数据分成更小的块,并在请求之间暂停
启用失败重试#
当您启用失败重试时,节点会在第一次失败后自动重试请求。
- 打开节点
- 选择设置
- 启用失败重试开关
- 配置重试设置:如果用于解决速率限制问题,将重试间隔时间(毫秒)设置为超过速率限制的时间。例如,如果您使用的 API 允许每秒一个请求,将重试间隔时间(毫秒)设置为
1000
以允许1秒的等待。
使用 Loop Over Items 和 Wait 节点#
使用 Loop Over Items 节点对输入项进行分批处理,并通过 Wait 节点在每次请求之间添加暂停。
- 在调用 API 的节点前添加 Loop Over Items 节点。有关如何配置该节点,请参考 Loop Over Items。
- 在调用 API 的节点后添加 Wait 节点,并将其连接回 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 需要发送超过单次响应处理能力的数据时,会采用分页机制。有关 HTTP Request 节点中的分页功能,请参阅 HTTP Request 节点 | 分页。