我在我的网站上有一个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。