HTTP 获取响应时间

HTTP Get time for response

我正在尝试 guzzle 并尝试构建一个简单的页面,我可以将我的域添加到 - 并让它检查它们当前是否 online/accessible.

我目前可以检查 array/list 个域是否在线,或者是否由于某种原因被拒绝。我也希望能够在我的 log/DB 中看到从我向 [mydomain.com] 发送 HTTP 请求到响应返回需要多长时间。

当前代码:

use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Pool;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Psr7\Response;

if(!empty($aDomains))
{       
    $oClient            = new Client(['expect' => false]);
    $aAcceptedResponse  = [];
    $aRejectedResponses = [];
    $aCreatedRequests    = [];
    

    foreach ($aDomains as $iDomainKey => $sDomain) 
    {          
        array_push($aCreatedRequests, new Request('GET', $sDomain));
    }

    $pool = new Pool($oClient, $aCreatedRequests, 
    [
        'concurrency' => 50,
        'options' => ['timeout' => 10],
        'fulfilled'   => function ($response, $index) use (&$aAcceptedResponse) 
        {
            $aAcceptedResponse[] = $index;
        },
        'rejected'    => function ($reason, $index) use(&$aRejectedResponses)  
        {
            $aRejectedResponses[] = $index;
        },
    ]);

    $promise = $pool->promise();
    $promise->wait();
}  

我想我可以在 guzzle 响应 object 中找到一些东西,但到目前为止我一直找不到任何东西 - 我是瞎了还是不可能看到这个?

感谢 El_Vanja 的回答,我通过使用全局时间戳解决了这个问题:

    $iStartExecutionTime = microtime(true);
    $oClient             = new Client(['expect' => false]);
    $aAcceptedResponse   = [];
    $aRejectedResponses  = [];
    $aCreatedRequests    = [];      

    foreach ($aDomains as $iDomainKey => $oDomain) 
    {          
        array_push($aCreatedRequests, new Request('GET', $oDomain->sDomainName));
        update_domain_uptime_monitor($oDomain->iID, 1, date('Y-m-d H:i:s', strtotime('NOW')+$oDomain->iInterval), date('Y-m-d H:i:s', strtotime('NOW')));
    }

    $pool = new Pool($oClient, $aCreatedRequests, 
    [
        'concurrency' => 50,
        'options' => ['timeout' => 10],
        'fulfilled'   => function ($response, $index) use (&$aAcceptedResponse) 
        {               
            $aAcceptedResponse[$index] = (microtime(true)-$GLOBALS['iStartExecutionTime']);
        },
        'rejected'    => function ($reason, $index) use(&$aRejectedResponses)  
        {
            $aRejectedResponses[] = $index;
        },
    ]);

    $promise = $pool->promise();
    $promise->wait();