首页 > 解决方案 > Google Calendar API - 更深入地了解日历使用限制超出错误

问题描述

我有一个自 2015 年以来一直在运行的应用程序。它使用 Google node.js 库(日历 v3 API)通过服务帐户读取和写入大约 16 个日历。我们还有 G Suite 教育版。

一般流程是:

这就是它所做的一切。它一直运行良好,直到过去几天 APIinsert调用开始失败:

{
    "code": 403,
    "errors": [{
        "domain": "usageLimits",
        "reason": "quotaExceeded",
        "message": "Calendar usage limits exceeded."
    }]
}

这并不是那么特别 - 文档有三个“解决方案”:

  • 在 G Suite 管理员帮助中阅读有关日历使用限制的更多信息。
  • 如果一个用户代表 G Suite 域的多个用户发出大量请求,请考虑使用具有权限委派的服务帐户(设置 quotaUser 参数)。
  • 使用指数退避。
  1. 据我所知,我没有超过任何规定的限制。
  2. 当我使用服务帐户时,它不会代表用户发出请求。服务帐户对日历具有​​写入权限并将用户添加为与会者
  3. 最后,我不认为指数退避会有所帮助,尽管我没有实现这一点。插入请求和下一次插入调用之间的时间以秒为单位,而不是毫秒。此外,仅使用简单脚本直接在命令行上运行调用也会产生相同的问题。

一些统计数据:

2015 - 2,466 inserts, 186 errors
2016 - 25,747 inserts, 237 errors
2017 - 42,815 inserts, 225 errors
2018 - 41,390 inserts, 1,074 errors (990 of which are in the past 3 days)

这些年来我已经更新了代码,但是这个学期它基本上没有受到影响。

在这一点上,我不确定该怎么做 - 没有联系 Google 的渠道,虽然我没有实施退避策略,但计时与此应用程序一起工作的方式,随后的调用会延迟几秒钟,并在队列中处理顺序处理请求。唯一的并发请求是列表操作。

标签: google-calendar-apigoogle-api-nodejs-client

解决方案


推荐阅读