【问题标题】:Youtube Reports API HttpError 429 FreeQuotaGroupCLIENT_PROJECT-100Youtube 报告 API HttpError 429 FreeQuotaGroupCLIENT_PROJECT-100
【发布时间】:2017-04-06 23:21:20
【问题描述】:

我正在通过 youtube 批量报告提取 youtube 分析。 https://developers.google.com/youtube/reporting/v1/reports/

当我们有很多用户时,一切正常,我们遇到 <HttpError 429 when requesting https://youtubereporting.googleapis.com/v1/media/CHANNEL/****/jobs/****/reports/***?alt=media returned "Insufficient tokens for quota group and limit 'FreeQuotaGroupCLIENT_PROJECT-100s' of service 'youtubereporting.googleapis.com', using the limit by ID '****'.">

我知道每 100 秒 API 调用的次数是有限制的。

有没有办法增加这个限制,因为我看到是FreeQuotaGroupCLIENT_PROJECT-100s,所以可能有Paid Quota或者别的什么。

如果不是,处理回退的最佳方法是什么?我们不能使用sleep方法,因为有很多并行进程,他们不会等待另一个。

谢谢。

【问题讨论】:

    标签: youtube-api report quota youtube-analytics


    【解决方案1】:

    429 status code 表示用户在给定时间内发送了太多请求(“速率限制”)。检查此related SO post,其中指出:

    收到状态 429 不是错误,这是另一台服务器“好心”地要求您停止发送垃圾邮件请求。很明显,你的请求率太高了,服务器不愿意接受。

    你不应该试图“躲避”这一点,甚至试图通过欺骗你的 IP 来绕过服务器安全设置,你应该尊重服务器的回答,不要发送太多请求。

    如果一切设置正确,您还会收到“Retry-after”标头以及 429 响应。此标头指定在进行另一个呼叫之前您应该等待的秒数。处理这个“问题”的正确方法是读取这个标题并让你的进程休眠这么多秒。

    发现响应不经常变化;在本地缓存发现响应或使用exponential back-off 重试。您需要降低发送请求的速度。

    【讨论】:

      猜你喜欢
      • 2018-07-24
      • 1970-01-01
      • 2019-06-08
      • 2019-11-08
      • 2019-03-30
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 2012-07-02
      相关资源
      最近更新 更多