【发布时间】:2019-07-20 17:02:22
【问题描述】:
我的网站有一个脚本,可以在用户访问特定页面时调用外部 API。
页面被访问时会发起 API 请求,并以 xml 格式返回响应。
我正在使用通常的 curl 请求。
目前,由于 API 端的新实现,如果 API 收到过多请求,它会抛出异常并拒绝请求。
我想将我的网站对 API 的总调用次数限制为每秒 8 次。
我怎样才能做到这一点?有人建议我对请求进行排队,但我以前从未做过这样的事情,而且我很难找到解决方案。
对不起,如果我的英语有错误。任何帮助表示赞赏。
例如:如果有 100 个用户同时访问该网页,我需要将这些 API 请求排入队列 8 后每秒 8 次,依此类推,直到全部完成。
【问题讨论】:
-
为什么不创建某种变量来计算每次调用,然后放入一些逻辑来比较它与时间。无论如何,您都在记录每个呼叫。所以如果 $time=1 sec 和 $calls=8,就不要再打电话了。
-
@RussJ 谢谢你的回答。您能否为我提供有关如何实现该目标的示例代码流?非常感谢。
-
见下面我的代码。如果有帮助,请采纳。