【问题标题】:What is causing exceeding of Rate Limit in My Program?是什么导致我的程序中超出速率限制?
【发布时间】:2013-08-28 22:02:41
【问题描述】:

我正在使用 Stackoverflow API 来收集 Stackoverflow 中的标签。我正在使用 NodeJS 并且面临一个典型的问题。在 230-250 个请求之后,我的速率限制被超出。据我所知,它允许

var request=require('superagent');
var request=require('mongoose');
mongoose.connect('mongodb://shivkumarganesh:11111@paulo.mongohq.com:10090/lklklklkkkkl_gshiv_sk');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
  console.log('Connected');
});

//Schema for Tags
var tagSchema = mongoose.Schema({
    name:String,
    count:Number,
    is_required:Boolean
,    is_moderator_only:Boolean,
    has_synonyms:Boolean});

var Tags = mongoose.model('Tags', tagSchema);

var saveSchema = function(Model){
    Model.save();
}
 ///usr/local/lib/node_modules/superagent  
var i=1;
var req=function(){
    request.get('http://api.stackexchange.com/2.1/tags?page='+i+'&pagesize=100&fromdate=1199145600&todate=1377648000&order=asc&sort=popular&site=stackoverflow')
   .set('X-API-Key', 'foobar')
   .set('Accept', 'application/json')
   .end(function(res){
     if (res.ok && i<346) {
       console.log('yay got ' + res.body);
       var jsonResponse = res.body;
       console.log(jsonResponse.items.length);
       for(var j=0;j<jsonResponse.items.length;j++)
       {
           var model = new Tags(jsonResponse.items[j]);
           saveSchema(model);
       }
       i++;
       console.log("Number of Iteration ---- > "+i);
       setTimeout(function() {
           req();
       }, 3000);

     } else {
       console.log('Oh no! error ' + res.text);
       console.log('Processing Over'+i)
     }
   });

}
req();

请帮我解决这个问题。如果可能,请纠正程序。 注意:我在逗 MongoHQ 存储数据。

【问题讨论】:

  • API-Key 只是一个示例,即使没有它,它也可以正常工作。
  • 在评级为负之前,请先看看程序哪里出了问题。我会很感激的。

标签: javascript node.js mongoose stackexchange-api


【解决方案1】:

您应该阅读此信息链接:https://api.stackexchange.com/docs/throttle

具体来说:

在每个方法级别上也设置了动态限制。如果应用程序接收到设置了退避字段的响应,它必须等待那么多秒才能再次使用相同的方法。

因此,请查看返回的 backoff 字段,并在执行另一个请求之前等待这么久。

【讨论】:

  • 谢谢您的回复。它符合我的问题。
猜你喜欢
  • 1970-01-01
  • 2017-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
  • 2022-01-11
相关资源
最近更新 更多