如何增加 Google Sheets v4 API 配额限制

问题描述 投票:0回答:2

新的 Google Sheets API v4 目前每天拥有无限的读/写配额(这太棒了),但限制为每个帐户每 100 秒 500 次读/写,以及每个密钥每 100 秒 100 次读/写(或者,我已发现多个密钥来自同一 IP)。这对于大多数用例来说可能已经足够了,但我有一个边缘情况,需要将经常更新的带有 70 个选项卡的 Google Sheet 带到一个 Node.js 服务器,该服务器每隔约 30-60 秒左右将这些内容分发给用户的客户端(用户是数据注释者,也是学生研究助理)。在项目早期,只有 20-30 个选项卡时,这还不算太糟糕,但现在数据很大,服务器正在突破 100 个配额,并且每 10-15 分钟就会返回错误。

问题是这样的:

  1. 频繁的数据更新:70 个选项卡中只有 1-5 个选项卡上的数据可能在任何给定的分钟内更新,但哪些选项卡具有新数据是随机的(因此我拉下整张 70 = 70 次读取)。
  2. 更新间隔:更新需求以大约 30 秒到 5 分钟的间隔随机发生(因此有些在配额内,有些约为配额的 3-5 倍)。
  3. 限制:我尝试将更新限制在 100 次调用/100 秒内(我之前的解决方案),但这会带来很大的可用性问题,显着降低可用性/生产力/工作质量。
  4. 配额增加:sheet API 目前似乎不包含增加配额的付费方式。它确实允许填写表格来请求增加配额,但我不确定平均响应时间是多少(我的请求只有几天)。
  5. 多个服务帐户:我尝试使用多个服务帐户来获得完整的 500 个请求/100 秒配额(而不是每个用户配额),因为这是一个服务器,但 Google 表格希望将速率限制为 100 个请求/距离给定 IP 100 秒
  6. 替代方案:我认为这个项目可能已经超出了 Sheets 能够轻松处理的大小,但似乎没有任何好的、可用的、自托管的、协作的电子表格,具有易于交互的功能API 就在那里。

是否有建议的设置/方法可以让服务器实现 500 次调用/100 秒?

google-sheets-api
2个回答
11
投票

您可以在 Google Cloud Platform 中请求配额更新,配额将增加至每个账户 2500 个,每个用户 500 个。 (关于你的#4)


11
投票
  1. 您可以使用 spreadsheets.get 在一次调用中读取整个电子表格,而不是每个请求 1 次调用。或者,如果您只需要值,您可以使用 spreadsheets.values.batchGet 在一次调用中读取多个不同的范围。

    • 与更新请求类似,我们可以在多个单元格范围甚至不同工作表中使用
      spreadsheets.values.update
      ,而不是使用
      spreadsheets.values.batchUpdate
      进行单独更新。
  2. Drive API 提供“推送通知”,因此您可以在发生更改时收到通知并对这些更改做出反应,而不是轮询它们。通知的延迟有点慢,但它可以完成工作。

© www.soinside.com 2019 - 2024. All rights reserved.