Fil*_*lip 6 google-app-engine google-calendar-api google-api
我有一个适用于各种 Google API 的 App Engine 应用程序。我开始了一个同步任务,将 3000 个事件同步到各种用户日历。它工作了一段时间,但现在我收到以下错误:
PHP Fatal error: Uncaught exception 'Google_Service_Exception' with message '{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "rateLimitExceeded",
"message": "Rate Limit Exceeded"
}
],
"code": 403,
"message": "Rate Limit Exceeded"
}
}
Run Code Online (Sandbox Code Playgroud)
如果我查看 Api 仪表板,限制确实很高:
每天
查询1,000,000每用户每 100 秒查询 50,000,000。
我怎样才能克服这个错误?我希望此任务完成,以便用户在他们的日历中看到事件。
正如文档中所述,用户速率限制是防洪。应用程序每秒只能发出 X 次请求。
403: Rate Limit Exceeded 已达到开发者控制台的每用户限制。
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "rateLimitExceeded",
"message": "Rate Limit Exceeded"
}
],
"code": 403,
"message": "Rate Limit Exceeded"
}
}
Run Code Online (Sandbox Code Playgroud)
建议采取的行动:
使用指数退避。
您可以尝试添加配额用户,这有时会有所帮助。
quotaUser 唯一标识用户的任意字符串。
即使在用户的 IP 地址未知的情况下,您也可以从服务器端应用程序强制实施每用户配额。例如,当应用程序代表用户在 App Engine 上运行 cron 作业时,就会出现这种情况。您可以选择唯一标识用户的任意字符串,但其长度不得超过 40 个字符。
如果您收到配额错误,则说明已超出配额,即使您认为没有超出。应用程序级别配额无法增加。你唯一能做的就是放慢速度。
| 归档时间: |
|
| 查看次数: |
4463 次 |
| 最近记录: |