用量限额

Google Sheets API 是一项共享服务,我们会应用配额和限制,以保护所有用户的 Google Workspace 系统的整体性能。

配额限制

虽然 Sheets API 对 API 请求没有硬性大小限制,但用户可能会遇到由 Google 表格 无法控制的不同处理组件造成的限制。为了加快请求速度,我们建议有效负载大小不超过 2 MB。

Sheets API 具有每分钟配额,并且每分钟都会重新填充。 例如,每个项目每分钟的读取请求限额为 300 次。如果您的应用在一分钟内发送 350 个请求,则超出配额的 50 个额外请求会生成 429: Too many requests HTTP 状态代码响应。如果发生这种情况,您应使用指数退避算法。1 分钟后,您可以再次执行请求。

下表详细介绍了请求限制:

配额
读请求次数
每个项目每分钟 300
每个项目每位用户每分钟 60
写请求次数
每个项目每分钟 300
每个项目每位用户每分钟 60

如需详细了解文件限制,请参阅可存储在 Google 云端硬盘中的文件。

行为和限制

在使用 ((sheets_api_short)) 时,请注意以下行为和限制,这些行为和限制会影响您的配额:

  • 读请求是指对任何从电子表格检索数据的方法(例如 getsearch)的调用。写请求是指对任何更改电子表格的方法(例如 updateclearcopyTo)的调用。

  • 用户可以同时提交多个请求,只要这些请求在配额限制范围内即可。每个 批处理 请求(包括任何子请求)都将 计为一个 API 请求,并计入您的用量限额。

  • 所有 Sheets 请求都以原子方式应用。也就是说,如果有任何请求无效,则整个更新都会失败,并且不会应用任何(可能存在依赖关系的)更改。

  • 处理一个 API 请求的时间上限为 180 秒。当 Sheets 处理请求的时间超过 180 秒时,该请求会返回超时错误。

  • 只要您不超过每分钟配额,每天可以发出的请求数量就没有限制。

解决基于时间的配额错误

对于所有基于时间的错误(每 X 分钟最多 N 个请求),我们建议 您的代码捕获异常并使用截断的指数退避算法,以确保您的 设备不会产生过多的负载。

指数退避算法是网络应用的标准错误处理策略。 指数退避算法以指数方式重试请求(不断增加各次请求之间的等待时间,直到达到最大退避时间) 。如果请求仍然失败,请务必 增加请求之间的延迟时间,直到请求成功为止。

示例算法

指数退避算法以指数方式重试请求(不断增加各次重试之间的等待时间 ,直到达到最大退避时间)。例如:

  1. 向 Google Sheets API 发出请求。
  2. 如果请求失败,请等待 1 + random_number_milliseconds,然后重试 请求。
  3. 如果请求失败,请等待 2 + random_number_milliseconds,然后重试 请求。
  4. 如果请求失败,请等待 4 + random_number_milliseconds,然后重试 请求。
  5. 依此类推,等待时间上限为 maximum_backoff
  6. 继续等待和重试,直到达到最大重试次数,但不要增加重试之间的等待时间 。

其中:

  • 等待时间为 min(((2^n)+random_number_milliseconds), maximum_backoff), 在每次迭代(请求)时递增 1。n
  • random_number_milliseconds 是一个随机毫秒数,小于或 等于 1,000。这有助于避免出现以下情况:许多客户端在 某些情况下全部同步进行处理并同时执行重试操作,导致同步发送每一波请求。每次重试请求后,系统都会重新计算 random_number_milliseconds 值。
  • maximum_backoff 通常为 32 或 64 秒。最适当的值 取决于用例。

客户端达到 maximum_backoff 时间后,可以继续重试。 此后执行的重试不需要继续增加退避时间。例如,如果客户端使用的 maximum_backoff 时间为 64 秒,则在达到此值后,客户端可以每 64 秒重试一次。在某个时间点, 应阻止客户端无限期地重试。

重试之间的等待时间和重试次数取决于您的用例 和网络条件。

价格

使用 Google Sheets API 无需支付额外费用。超出配额 请求限制不会产生额外费用,也不会向您的账号收费。

申请增加配额

根据项目的资源使用情况,您可能需要申请调整配额 。服务账号发出的 API 调用被视为使用单个 账号。我们无法保证您的配额调整申请一定会得到批准。如果配额调整 申请会大幅增加配额值,则可能需要更长时间才能获得批准。

并非所有项目的配额都完全相同。随着您的 Google Cloud 使用量逐步增加,您的配额值可能需要增加。如果您预计自己的用量即将显著增加,可以在 Google Cloud 控制台的配额页面中提前申请调整配额。

如需了解详情,请参阅以下资源: