PHP将总外部API请求限制为每秒8次

Kau*_*yat 5 php api

我的网站有一个脚本,当用户访问特定页面时,该脚本将调用外部API.访问页面时将发出API请求,并以xml格式返回响应.
我正在使用通常的卷曲请求.

现在,由于API方面的新实现,如果API获得太多请求,它将抛出异常并拒绝该请求.
我想将从我的网站调用AP​​I的总次数限制为每秒8次.

我怎样才能做到这一点?有人建议我排队请求,但我以前从未做过这样的事情,而且我很难找到解决方案.
对不起,如果我的英语有错误.任何帮助表示赞赏.

例如:如果100个用户同时访问了所有网页,我需要在每秒8次之后将这些API请求排队8,依此类推,直到完成所有操作.

Rus*_*s J 0

$currentCount=0;
$currentSeconds;

function callAPI()
{
     if($currentCount<8 || date("s") != $currentSeconds)
     {

         if(date("s") != $currentSeconds)
         {
              $currentCount=0;
          }
         $currentSeconds=date("s");
     //call your API here
     $currentCount++;
     }
}
Run Code Online (Sandbox Code Playgroud)

对于每个 API 调用:

- 在变量中记录当前时间(仅秒)。
- 进行 API 调用。
- 增加呼叫计数器。
- 再次检查当前秒数是否等于之前存储的值以及您的呼叫计数器是否低于 8。如果您的呼叫计数器低于 8,您可以再次拨打电话。

  • 请注意,除非您将值保留在数据存储(数据库、文件等)中,否则每个请求的“currentCount”将为“0” (3认同)