我的网站上有一个ajax表单,可以向这个php文件发送许多请求以获取一些信息。
如何在这个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"}';
}
答案 0 :(得分:1)
这可以被认为是php中限制的概念。您可以简单地选择在连续请求之间延迟。
Like sleep(5);
这可以在您提出请求后使用,然后等待5秒。
或者您可以实现slack,gearmean或rabbitmq,它们提供排队,消息代理和工作者处理等设施。