我有一个自2015年以来一直在运行的应用程序。它使用Google node.js库(日历v3 API)通过服务帐户读取和写入大约16个日历。我们也有G Suite教育版。
一般过程是:
仅此而已。直到过去几天,API insert
调用开始失败为止,它一直运行良好:
{
"code": 403,
"errors": [{
"domain": "usageLimits",
"reason": "quotaExceeded",
"message": "Calendar usage limits exceeded."
}]
}
这并不是很特别-文档具有三个“解决方案”:
- 在G Suite管理员中阅读有关日历使用限制的更多信息 帮助。
- 如果一个用户代表许多用户发出很多请求 的G Suite域,请考虑使用具有授权的服务帐户 委派(设置quotaUser参数)。
- 使用指数补偿。
一些统计数据:
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,并且虽然我尚未实施退避策略,但该应用程序的计时方式,后续调用都延迟了几秒钟,并在顺序处理请求的队列。唯一的并发请求将是列表操作。