繁体   English   中英

如何将curl_init调用转换为curl_multi_init

[英]How to convert a curl_init call into curl_multi_init

我试图弄清楚如何将连接功能从单个curl初始化更改为使用curl多重初始化。

这是现有的代码:

protected function getConnection()
{
    if (!$this->connection) {
        $this->connection = curl_init();
    }

    return $this->connection;
}

这是我尝试过的方法,但是它什么也没做,甚至没有抛出错误:

protected function getConnection()
    {
 $mh = curl_multi_init();

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

  {
        if (!$this->connection) {
            $this->connection[$i] = curl_init();

        }

        return $this->connection[$i];
    }

    curl_multi_add_handle($mh, $connection[$i]);

 }

  $running = 0;
    do {
        curl_multi_exec($mh, $running);
    } while ($running > 0);
}

我究竟做错了什么? 提前致谢!

do {
    curl_multi_exec($mh, $running);
} while ($running > 0);

这将消耗很多 CPU周期,而并不会做太多事情。

如果句柄有效,它最终应该完成,但是我们看不到如何填充连接-并且不清楚为什么初始化一个数组值,如果连接变量为false则从方法返回。 代码是卡在循环中还是只是在较早的if语句中返回? 如果是前一种情况,则按照链接的示例添加超时。 如果后者在调用方法之前填充连接数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM