查找在多个curl中发送每个请求的时间

时间:2018-11-06 09:22:49

标签: php curl

我使用多重卷曲发送请求,并且想知道每个请求的发送时间。我有这样简单的手动功能:

function multirequest($urls) //may be $urls contains 10 urls, or may be 1 000
{
    $multi = curl_multi_init();
    $handles = []; 
    $htmls = [];
for($i=0; $i<count($urls);$i++)
{       
    $ch = curl_init('https://....');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_multi_add_handle($multi, $ch);
    array_push($handles, $ch); 
} 

do {  
    $mrc = curl_multi_exec($multi, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) 
{
    if (curl_multi_select($multi) == -1) 
    {
        usleep(1);
    }
    do
    {
        $mrc = curl_multi_exec($multi, $active);
    }while($mrc == CURLM_CALL_MULTI_PERFORM);
}

foreach($handles as $channel)
{
    $html = curl_multi_getcontent($channel);
    $htmls[] = $html;
    curl_multi_remove_handle($multi, $channel);
}
curl_multi_close($multi);
return $htmls;
}

我认为,每个人都使用此代码。我知道,可以使用callback通过microtime()函数来查找响应时间。但是我不知道如何找到时刻,何时请求开始发送?可以在多重卷曲中设置请求顺序吗?有人可以帮忙吗?谢谢。

UPD

是否可以在多重卷曲中设置请求顺序?我不确定,数组中的第一个$ch是否真的会首先发送。

0 个答案:

没有答案