Найти время отправки каждого запроса в мульти-керл - PullRequest
0 голосов
/ 06 ноября 2018

Я использую multi 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(). Но я не понимаю, как найти момент, когда начнется отправка запроса? Можно ли установить последовательность запросов в multi curl? Может ли кто-нибудь помочь? Спасибо.

UPD

Можно ли установить последовательность запросов в multi curl? Я не уверен, что первый $ch в массиве будет действительно отправлен первым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...