我正在试图弄清楚如何从单个curl init更改连接函数以使用curl multi init。
以下是现有代码:
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);
}
我做错了什么?提前谢谢!
答案 0 :(得分:1)
do {
curl_multi_exec($mh, $running);
} while ($running > 0);
这是burn a lot of CPU cycles而不是做得太多。
如果句柄有效,它最终应该完成,但是我们无法看到连接是如何填充的 - 如果连接变量为false,则不清楚为什么要初始化数组值然后从方法返回。代码是否陷入循环或只是在早期的if语句中返回?如果是前者,则根据链接示例添加超时。如果后者在调用方法之前填充连接数组。