问题描述
我们正在使用gmail api解析一些邮件ID的最新邮件。经过几个小时的运行,我们总是会遇到:
{
"code" : 429,"errors" : [ {
"domain" : "global","message" : "User-rate limit exceeded. Retry after 2020-08-25T05:11:14.899Z","reason" : "rateLimitExceeded"
} ],"status" : "RESOURCE_EXHAUSTED"
}
我想查看用户速率限制数据,但gmail api指标仅向我们显示我们的应用程序指标。
我也有电子邮件ID凭据。我们可以在任何地方检查以准确查明造成429错误的电涌量吗?从我们的应用程序中,我们每秒收到3个请求(message.get,message.get,message.list,message.attachment.get,message.modify)(从我们拥有的api指标中可以看出)。每位用户的配额限制为15000 /分钟或250 /秒,而且似乎没有达到限制的最高水平。基于此,我们只能得出结论,电子邮件ID为多个应用程序提供了oauth令牌,这些应用程序一直在不懈地努力以突破限制。现在,只有当我们知道发生这种情况的原因并相应地调整命中率,以将429的机会降到最低时。
另外,如果无法做到这一点,那么请建议我们提供较高的命中率/秒,这样就永远不会发生429。
解决方法
429错误User-rate limit exceeded
和returned with a time to retry
的大部分意思是您命中了Mail sending limits
具有这些限制的here:
每天的邮件数量:2,000(对于试用帐户为500)
邮件自动转发:10,000
自动转发邮件过滤器:20
每封邮件的收件人:每封邮件总计2,000 (最多500个外部收件人)
通过SMTP(由POP或IMAP用户)或Gmail API发送的每封邮件的收件人:100
每天的总接收者:3,000(2,000个外部帐户,500个外部试用帐户) 5封发送到10个不同地址的电子邮件被视为10个唯一收件人* 发送到一个地址的5封电子邮件被视为1个唯一收件人*
这些限制与每分钟/秒的请求速率无关,但与每日发送限制无关。请注意,如果您有试用用户,则您的限制可能远低于支付的限制用户。
当您进入Gmail API -> Quotas
上的GCP控制台并从下拉列表中选择相关类型时,便可以验证每天和分钟的查询。
如果表明您低于限制或不确定达到哪个限制,则可以选择与GSuite support联系以获得帮助。