【问题标题】:Insufficient tokens for quota 'AnalyticsDefaultGroup' and limit 'USER-100s' of service 'analyticsreporting.googleapis.com' for consumer配额“AnalyticsDefaultGroup”的令牌不足,并为消费者限制服务“analyticsreporting.googleapis.com”的“USER-100s”
【发布时间】:2018-06-20 09:48:27
【问题描述】:

我正在使用async.eachOfSeries 超过 300 多个数组并请求一些 GA api,它工作正常,但有时我会出错..

UnhandledPromiseRejectionWarning:错误:配额令牌不足

“AnalyticsDefaultGroup”并限制“USER-100s”的服务 面向消费者的“analyticsreporting.googleapis.com” 'project_number:79317181646'。

【问题讨论】:

    标签: javascript node.js google-analytics google-api


    【解决方案1】:

    Limits and quotas

    在 API 控制台中,有一个类似的配额,称为每位用户每 100 秒的请求数。默认设置为100 requests per 100 seconds per user,可以调整为最大值1000。但对 API 的请求数限制为每位用户每秒最多 10 个请求。

    这个错误是洪水保护。每个用户每秒只能发送 100 个请求。用户由您的 IP 地址表示。你需要放慢速度。

    注意:Google 并不完美,您可以在一秒钟内发送 99 个请求,然后尝试等待 90 秒再试一次,它可能有效,也可能无效。请放慢速度再试一次。

    【讨论】:

    • 但我在 3 秒内使用了 3 个 api ......但是在减慢更多之后它正在工作
    • 所有 Google Analytics API 的配额相同。
    • 你可以考虑实现backoff
    • @DalmTo 是的,减速后它正在工作stackoverflow.com/a/50945781/7129694
    【解决方案2】:

    设置 settimeout 后,它似乎工作了

    function getBeautyrestReport(cb){
        apiGA.totalSiteVisitor(1,START_DATE,END_DATE,(error,data)=>{
            if(error) mail.sendError(error);
            let pageView = data['pageView']||0;
            let bounceRate = data['bounceRate']||0;
            setTimeout(() => {
                cb(pageView,bounceRate);
               }, 500);
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      相关资源
      最近更新 更多