Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调用api并保持在速率限制内(react javascript)_Javascript_Reactjs_Api_Riot Games Api - Fatal编程技术网

如何调用api并保持在速率限制内(react javascript)

如何调用api并保持在速率限制内(react javascript),javascript,reactjs,api,riot-games-api,Javascript,Reactjs,Api,Riot Games Api,我正在尝试使用riot api为不同的玩家构建统计页面。 该算法在特定玩家被识别后工作,然后一个api调用将尝试获取大约15个游戏。然后我想遍历这个包含15个游戏的列表,其中对于每个游戏,我需要进行另一个api调用,以获取与特定游戏数据匹配的api。游戏数据随后保存到云firestore。我选择一次玩15个游戏,因为RiotAPI限制每秒20次调用,每2分钟100次调用。问题是我过快地完成了所有的算法,我得到了一个429错误,因为我达到了极限。有没有办法降低我的api调用在窗口中停留的速率,或者

我正在尝试使用riot api为不同的玩家构建统计页面。 该算法在特定玩家被识别后工作,然后一个api调用将尝试获取大约15个游戏。然后我想遍历这个包含15个游戏的列表,其中对于每个游戏,我需要进行另一个api调用,以获取与特定游戏数据匹配的api。游戏数据随后保存到云firestore。我选择一次玩15个游戏,因为RiotAPI限制每秒20次调用,每2分钟100次调用。问题是我过快地完成了所有的算法,我得到了一个429错误,因为我达到了极限。有没有办法降低我的api调用在窗口中停留的速率,或者有没有更好的办法来处理429错误,比如重试?

您可以用它来限制对riot api的调用速率。有几种方法可以实现这一点

  • 创建一个可调用函数(在Firebase中)并使用该函数编写请求,然后让该函数将它们添加到具有速率限制的
  • 将数据写入Cloud Firestore/RTDB,这将触发云函数以将请求添加到具有速率限制的云任务HTTP队列

  • 创建另一个HTTP云函数(worker)从队列接收任务,调用riotapi并将数据写入CloudFireStore。如果从riot api收到错误,任务将重试。云任务将自动降低重试率,以避免端点过载。

    它们的API是否允许您在一个请求中获取所有相关信息,而不必为每个玩家进行多次调用?为什么不在解决第一批问题后再进行新调用?