首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nodejs中每分钟调用5个API

在nodejs中每分钟调用5个API
EN

Stack Overflow用户
提问于 2020-10-27 10:56:24
回答 1查看 179关注 0票数 0

我是nodejs的新手。我希望将外部API调用限制在每分钟5次。如果我超过每分钟超过5个API调用,我将得到以下错误。

您已经超过了每分钟的最大请求。

这是我的密码。在这里,传递给tickerSymbol函数的scheduleTickerDetails数组将是一个包含近100 k元素的大型数组。

代码语言:javascript
复制
public async scheduleTickerDetails(tickerSymbol: any) {
  for(let i=0;i<tickerSymbol.length;i++) {
      if(i%5 == 0){
      await this.setTimeOutForSymbolAPICall(60000);}
      await axios.get('https://api.polygon.io/v1/meta/symbols/' + tickerSymbol[i] + '/company?apiKey=' + process.env.POLYGON_API_KEY).then(async function (response: any) {
          console.log("Logo : " + response.data.logo + 'TICKER :' + tickerSymbol[i]);
          let logo = response.data.logo;
          if (await stockTickers.updateOne({ ticker: tickerSymbol[i] }, { $set: { "logo": logo } }))
              return true;
          else
              return false;
         })
        .catch(function (error: any) {
          console.log("Error from symbol service file : " + error + 'symbol:'+tickerSymbol[i]);
        });   
    }
}

 /**
  * Set time out for calling symbol API call 
  * @param minute 
  * @return Promise
  */
  public setTimeOutForSymbolAPICall(minute:any)  {
  return new Promise( resolve => {    
      setTimeout(()=> {resolve('')} ,minute );   
  })
   
}

我想先发送前5个API,然后再过一分钟我需要发送接下来的5个API等等。我已经为此创建了一个setTimeOut函数,但有时在我的控制台中

错误:状态代码429的请求失败:您已经超过了每分钟的最大请求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-27 11:06:05

-- JS中的for循环--在启动所有异步操作时立即运行到完成。

请参考this的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64552936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档