如何在php中建立队列来管理请求?

时间:2017-06-28 07:06:31

标签: php request queue

我的网站上有一个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"}';
}

1 个答案:

答案 0 :(得分:1)

这可以被认为是php中限制的概念。您可以简单地选择在连续请求之间延迟。   Like sleep(5); 这可以在您提出请求后使用,然后等待5秒。

或者您可以实现slack,gearmean或rabbitmq,它们提供排队,消息代理和工作者处理等设施。