gpt4 book ai didi

swift - Alamofire 全局队列,请求之间有暂停

转载 作者:行者123 更新时间:2023-11-30 11:19:11 53 4
gpt4 key购买 nike

我正在使用的 API 每秒最多允许 5 个请求。如果超过此限制,API 将返回 429 服务器错误。

我的直觉表明,要处理这个问题,我应该将所有请求放入某种形式的串行队列中,并在请求之间强制执行 0.21 秒的延迟,但我不太确定如何实现这一点。我也不确定使用串行队列是否是一个好主意,因为那样我将失去同时运行多个请求的能力。

我正在使用适配器和重试器对象来处理刷新我的 OAuth session token ,所以我想这可能是放置我的逻辑的好地方。

有人以前做过类似的事情,或者有什么想法吗?

最佳答案

实际上我可能会走不同的方向,而不是试图限制所有请求,我会查看每个请求的响应,如果是 429,我会通过异步闭包重新排队请求1秒的时间延迟。

这意味着只要请求缓慢传入,它们就会立即执行。但是当您尝试第 6 个请求时,它会转移到下一秒。

您必须考虑的唯一问题(无论采用哪种解决方案)是,如果请求的传入速度持续快于 API 允许的速度,会发生什么情况。 IE。如果每秒收到 6、7 或 100 个请求,会发生什么情况?您将如何处理永远不会被执行的额外请求。

在某些时候,您的代码将不得不开始失败的请求。或者,您需要插入服务器人员运行更多服务器或为您提供更多带宽。

关于swift - Alamofire 全局队列,请求之间有暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470595/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com