如何在PHP中排队管理请求



我在我的网站上有一个AJAX表单,该表格将许多请求发送到此php文件fo获取一些信息。

如何在此PHP文件中进行队列以每秒处理1个请求,而不是更多?

php文件:

<?php
function isJson ($str) {
    json_decode($str);
    return (json_last_error() == JSON_ERROR_NONE);
}
$service_url = 'https://example.com/api-local-json.php?cmd=whois&domain='.$_GET['domain'];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $service_url);
curl_setopt($curl, CURLOPT_TIMEOUT, 29);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
if(!$curl_response){
    echo '{"result": "error"}';
}
curl_close($curl);
if (isJson($curl_response)) {
    echo $curl_response;
} else {
    echo '{"result": "error"}';
}

这可以将其视为php中节流的概念。您可以选择在连续的请求之间延迟。 Like sleep(5); 一旦提出请求,可以使用它,然后等待5秒钟。

或者您可以实施提供这些排队,消息经纪和工人处理的设施的Slack,Gearmean或RabbitMQ。

最新更新