修复速率限制错误
在 Make 中,当对某个应用(app)的请求超过其 API 速率限制(rate limit)——即在特定时间内允许的最大请求数(例如每分钟 100 次请求)——时,您会看到 RateLimitError。当其速率限制被超出时,该应用会阻止后续请求,直到指定的时间段过去。例如,请参阅 Google Sheets 的 API 速率限制(rate limits)。
速率限制错误常见于具有即时触发器(instant triggers)(例如 Webhooks)的场景(scenario)中,以及在短时间内处理大量记录的应用(例如 Google Sheets 或 Airtable)中,以及在多个场景(scenario)中多次使用的应用中。
本文概述了防止即时场景(instant scenarios)、计划场景(scheduled scenarios)以及这两种类型中出现速率限制错误的策略。
Make 中的速率限制错误对应于 HTTP 429 Too Many Requests 错误代码。虽然 Make 遵循标准错误代码及其定义,但第三方应用可能并不总是符合此标准。
按调度类型划分的策略
当模块(module)返回速率限制错误且不存在错误处理程序时,Make 会根据以下因素进行响应:
- 场景(scenario)调度类型
- 是否启用了 未完成执行(incomplete executions)
下表概述了遇到速率限制错误时所有可能的响应:
| 调度类型 | 禁用未完成执行(incomplete executions) | 启用未完成执行(incomplete executions) |
|---|---|---|
| 计划(Scheduled) | Make 将暂停下一个场景(scenario)运行 20 分钟。 Make 不会重新运行未完成执行。 |
Make 将暂停下一个场景(scenario)运行 20 分钟。 Make 使用 指数退避(exponential backoff) 重新运行未完成执行。 |
| 即时(Instant) | Make 使用 指数退避(exponential backoff) 从头开始重新运行未完成执行。 | Make 使用 指数退避(exponential backoff) 重新运行未完成执行。 |
避免速率限制错误的策略取决于场景(scenario)是通过即时触发器(instant triggers)即时接收数据,还是按计划接收数据。
即时场景(instant scenarios)
在即时触发的场景(scenario)中,设置 场景速率限制(scenario rate limit) 来控制场景(scenario)每分钟运行的频率。此策略将请求的突然峰值分散到更长的时间段内,使排队的请求能够以可控的速率处理。
您可以在 每分钟最大启动运行次数字段中配置场景(scenario)速率限制。通过点击即时触发器模块(module)上的闪电图标或场景(scenario)工具栏中的 计划设置找到此设置。

您也可以启用顺序处理(sequential processing)或使用睡眠模块(sleep modules)。但是,这些策略具有局限性,仅适用于特定情况。请参阅 高级策略 以了解更多。
计划场景(scheduled scenarios)
在计划场景(scheduled scenarios)(例如使用 轮询触发器(polling triggers))中,根据您的用例,可以尝试以下策略:
设置更长的调度间隔
当您预期单次运行中会有许多数据记录时,延长场景(scenario)运行之间的时间,以将传入记录分散到更长的时间段。例如,将场景(scenario)安排为每 5 分钟运行一次,每次运行处理 100 行。
您可以在场景(scenario)工具栏的 计划设置 中配置调度间隔。
设置每次运行处理的记录数较少
如果您需要频繁运行场景(scenario),例如每分钟运行一次,请降低每次运行处理的记录数。建议每次运行最多处理 20 条记录,以避免超出速率限制。例如,将场景(scenario)安排为每分钟运行一次,每次运行处理 20 行。
您可以在模块(module)设置的 限制 字段中配置每次运行的记录数限制。
两种类型
无论场景(scenario)调度类型如何,您都可以执行以下操作来减少请求并防止速率限制错误:
- 使用批量操作模块,例如 Google Sheets > Bulk Add Rows 和 Bulk Update Rows,在单个请求中处理多个 bundle。例如,向 Google Sheets 请求一次以向电子表格添加 20 行,而不是请求 20 次——每行一次。
- 使用聚合器模块将多个 bundle 合并为单个 bundle。
- 如果速率限制错误持续存在,在导致错误的模块之前添加短暂延迟,方法是添加一个 Sleep 模块。
有关更多策略,请继续阅读下一节。
高级策略
本节包含更多速率限制错误策略,当上述策略效果不佳或不适用于您的用例时可尝试这些策略。
顺序处理
当您启用顺序处理时,触发器模块(module)会按传入数据的到达顺序逐个处理,而不是并行处理。Make 会等待场景(scenario)运行完成后才开始下一次运行。
您可以在 Scenario Builder 的 场景设置 中启用顺序处理。

限制
顺序处理会在发生错误时停止场景(scenario),即使未完成执行已禁用。如果场景(scenario)启用了未完成执行和顺序处理,场景(scenario)会暂停,直到未完成执行被处理完毕,以保持传入数据的顺序。
Sleep 模块
Sleep 模块会将向应用发出的请求延迟最多 300 秒,即 5 分钟。将延迟设置为与速率限制中允许的请求数相匹配。例如,如果应用限制为每分钟 10 次请求,请将延迟设置为 6 秒。
您可以在接收延迟请求的模块(module)之前添加一个 Sleep 模块。

在以下情况下使用 sleep 模块来解决速率限制错误:
- 在具有同一应用的多个模块(module)的即时场景(scenario)中
- 在具有多次运行以处理许多 bundle(例如 10 个)的模块(module)的场景(scenario)中
限制
除了减慢运行时间外,Sleep 模块通常只是延迟导致速率限制错误的问题,而不是解决它们。例如,当快速连续发生的请求到达 Sleep 模块时,该模块只会将这些有问题的请求延迟几秒钟。
未完成执行
当您启用未完成执行时,您可以稍后处理错误并保持场景(scenario)运行。
如果在启用未完成执行的情况下发生速率限制错误,Make 会自动以逐渐增加的间隔重新运行未完成执行。在大多数情况下,这种自动重新运行可以解决问题,场景(scenario)运行会照常继续。只有在出现逻辑错误(例如,错误的映射、筛选条件等)时,您才需要手动解决错误。
要启用未完成执行,请在 场景设置 中的 存储未完成执行 字段中选择 是。
应用会在所有使用该应用的场景(scenario)中统计对其速率限制的请求数。
如果您的场景(scenario)包含消耗大量操作的模块(module),或者您频繁在场景(scenario)中使用同一模块(module),请考虑检查应用的 API 速率限制,或使用本文中的错误处理策略来预先避免频繁的场景(scenario)运行。
2026 年 5 月 14 日