Curl_Multi无限循环(10mn)

时间:2017-09-13 12:42:37

标签: php rest libcurl curl-multi

我对此功能有疑问:

function multi_activity($nodes,$headers){

$node_count = count($nodes);
$results=array();
$curl_arr = array();
$master = curl_multi_init();

for($i = 0; $i < $node_count; $i++)
{
    $url =$nodes[$i];
    $curl_arr[$i] = curl_init($url);
    curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl_arr[$i], CURLOPT_HEADER, false);
    curl_setopt($curl_arr[$i], CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl_arr[$i], CURLOPT_FOLLOWLOCATION, false);
    curl_setopt($curl_arr[$i], CURLOPT_SSL_VERIFYPEER, false);
    curl_multi_add_handle($master, $curl_arr[$i]);
}    
  do {       
    curl_multi_exec($master,$running);  
    } while($running > 0 );  


for($i = 0; $i < $node_count; $i++)
{

    $results[] = curl_multi_getcontent  ( $curl_arr[$i]  );
    curl_multi_remove_handle($master, $curl_arr[$i]);

}   
curl_multi_close($master);
return $results;
}

实际上,我正在调用此函数300次,每次使用包含30个不同网址的$nodes。我实际上并不理解CUrl实际如何工作但是我必须等待10mn才能完成工作并打印我的JSON。有没有办法通过使用multi_curl或其他异步PHP工具/ API来改进它。提前谢谢。

0 个答案:

没有答案