PHP Multi Curl最大化@ 1020请求?

时间:2015-04-17 22:19:29

标签: php curl

似乎在1019或1020个请求后我得到了空白,带宽/服务器资源不是问题。

function parallel($nodes) {
    $start = microtime(true);
    $node_count = count($nodes);
    $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_ENCODING,'gzip');
        curl_setopt($curl_arr[$i], CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
        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]);
        //echo( $i . "\n" . $results . "\n");
    }
    echo "\n";
    echo microtime(true) - $start;
}

基本上有谁知道可能导致此问题的任何设置?或者CURL中有限制(我不这么认为)?这不是我从其中提取数据的网站,google.com也在1020空白。

所有的想法都受到赞赏和欢迎。

1 个答案:

答案 0 :(得分:1)

问题最终成为服务器上设置的文件限制

我更新了/etc/security/limits.conf中的限制,我添加了以下内容:

*                soft    nofile          40000
*                hard    no file          40000