如何在不修改配额限制的情况下处理G Suite API 429 HTTP错误(超出配额)?

时间:2020-05-15 08:59:55

标签: google-sheets google-api google-sheets-api http-status-code-429

我正在运行一个单线程脚本,该脚本使用了G Suite Sheets API中的数据。

一段时间后,日志中会弹出以下429 HTTP错误:

"Quota exceeded for quota group 'ReadGroup' and limit 'Read requests per user per 100 seconds' of service 'sheets.googleapis.com' for consumer...

默认情况下,我的配额限制设置如下( Ilimitado 表示 unlimited ):

enter image description here

我的客户错误之前的最后一条日志行:

[2020-05-14 02:21:37,114: INFO/ForkPoolWorker-1] URL being requested: GET https://sheets.googleapis.com/v4/spreadsheets/<SHEET_ID>?alt=json
[2020-05-14 02:21:37,517: WARNING/ForkPoolWorker-1] Sleeping 1.19 seconds before retry 1 of 5 for request: GET https://sheets.googleapis.com/v4/spreadsheets/<SHEET_ID>?alt=json, after 429
[2020-05-14 02:21:39,057: WARNING/ForkPoolWorker-1] Sleeping 2.68 seconds before retry 2 of 5 for request: GET https://sheets.googleapis.com/v4/spreadsheets/<SHEET_ID>?alt=json, after 429
[2020-05-14 02:21:42,089: WARNING/ForkPoolWorker-1] Sleeping 3.16 seconds before retry 3 of 5 for request: GET https://sheets.googleapis.com/v4/spreadsheets/<SHEET_ID>?alt=json, after 429
[2020-05-14 02:21:45,606: WARNING/ForkPoolWorker-1] Sleeping 0.77 seconds before retry 4 of 5 for request: GET https://sheets.googleapis.com/v4/spreadsheets/<SHEET_ID>?alt=json, after 429
[2020-05-14 02:21:46,722: WARNING/ForkPoolWorker-1] Sleeping 20.65 seconds before retry 5 of 5 for request: GET https://sheets.googleapis.com/v4/spreadsheets/<SHEET_ID>?alt=json, after 429
[2020-05-14 02:22:07,735: WARNING/ForkPoolWorker-1] sheets#sheet: HTTP error (code 429): Quota exceeded for quota group...

我可以在googleapiclient库中找到某种指数退避重试算法,但是我想知道的是(特别是在20.65秒暂停后)服务器仍然无法使用2XX HTTP响应的原因响应。

  • 在收到前100个请求之后,是否需要等待100秒的间隔结束才能使用下一个100?
  • 如果是这样,我怎么能在不修改配额的情况下进行规避?

谢谢您的时间。

0 个答案:

没有答案