【问题标题】:Gmail-API request quota at a user level用户级别的 Gmail-API 请求配额
【发布时间】:2018-08-29 05:34:50
【问题描述】:

注意:这个问题是关于我在此处的文档中不理解的内容: https://developers.google.com/gmail/api/v1/reference/quota#concurrent_requests

并发请求

Gmail API 强制执行每个用户的并发请求限制(在 除了每个用户的速率限制)。此限制由所有人共享 Gmail API 客户端访问给定用户并确保没有 API 客户端正在超载 Gmail 用户邮箱或其后端服务器。

 enforces a per-user concurrent request limit (in addition to the per-user rate limit).

我在他们的文档中找不到“每用户并发请求”是什么。而每个用户的速率限制位于同一页面的顶部。 https://developers.google.com/gmail/api/v1/reference/quota#top_of_page

【问题讨论】:

  • 他们可能只是选择不记录限制,以避免人们玩弄它。

标签: google-api gmail-api quote


【解决方案1】:

Gmail API 强制执行每用户并发请求限制(除了每用户速率限制)。此限制由访问给定用户的所有 Gmail API 客户端共享,并确保没有 API 客户端使 Gmail 用户邮箱或其后端服务器过载。

这里的混淆是per-user concurrent request limitper-user rate limit之间的区别

假设我制作了一个应用程序,让用户可以从他们的 Gmail 帐户中阅读。我将受到每个用户可以通过 MY 应用发出的请求数量的限制,限制为 per-user rate limit

现在假设用户安装了您的应用,这也允许他们访问他们的 Gmail 帐户。您还受限于用户通过 per-user rate limit 访问 api 的速度。

但是,我们的应用程序以及 gmail 和收件箱应用程序都在用户正在使用的所有应用程序中以相同的 per-user concurrent request limit 并发含义运行。

per-user concurrent request limit 可能是为了确保开发人员不会创建许多不同的项目并使用所有这些项目来抓取数据。

据我所知,per-user concurrent request limit 没有记录它的隐身限制,而且我从未见过任何人能够准确确定 Google API 中并发限制的数字是多少。除了谷歌分析 API 是 10000 不包括谷歌分析网站和官方移动应用程序

示例:

每个用户的速率限制

  1. 一号用户登录并列出他拥有的所有电子邮件 10 用户没有错误。
  2. 用户二号登录,他有 1000 封电子邮件,你的应用程序尝试 在 1 秒内将它们全部选中。您将收到此用户的速率限制错误。你正在淹没谷歌。 然而,其他开发者的应用将能够通过 API 访问用户收件箱

每用户并发

  1. 一号用户仅在运行您的应用程序。登录并列出他有 10 个用户的所有电子邮件,没有错误。
  2. 第二个用户正在运行您的应用程序和其他开发人员的 20 个其他应用程序。尝试列出他所有的电子邮件,假设他同时在所有应用程序上都这样做了,他最终可能会收到错误。

这些错误是基于用户的,因为名称中的 Per-user 名称的限制。

示例 2:

让我们看看 Google 分析 API,因为我知道这个 API 的确切数字。

  • 使用您的应用程序的用户最多可以在 90 秒内发出 100 个请求。 (基于用户应用)
  • 一个应用程序每天最多可以发出 50000 个请求。 (基于应用)
  • 所有应用程序每天最多可以针对一个视图发出 10000 个请求(基于并发应用程序)

【讨论】:

  • 注意:评论已编辑。 @DalmTo - 根据您的回答,我假设 per-user rate 限制是 app based 基于 not 用户。即:对于同一个用户,使用App1每秒可以请求250个配额单位,使用App2可以在同一秒内请求250个配额单位?
  • 它们都是基于用户的。对应用进行身份验证的用户。或者在并发 apps 的情况下
  • 嗯,这让我想知道为什么存在两个不同的限制呢?如果per-user rate 限制是基于用户的,那还不足以防止开发人员使用户邮箱过载吗?为什么per-user concurrent 限制呢?它们的存在是因为per-user rate limit 处理配额单位,而per-user concurrent 限制处理请求总数
  • 为了防止一个用户安装多个应用程序和垃圾邮件,我想。在开发人员运行具有多个不同项目 ID 的同一应用程序
  • 啊,这很清楚!因此,某些其他应用达到用户收件箱的用户速率限制不会导致在我的应用上触发用户速率限制(前提是未达到并发请求限制)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 2014-12-24
  • 2014-10-23
  • 2021-10-13
  • 2019-03-03
  • 2020-07-03
相关资源
最近更新 更多