Http Guzzle 5.3-获取异步请求的请求持续时间

Http Guzzle 5.3-获取异步请求的请求持续时间,http,asynchronous,guzzle,Http,Asynchronous,Guzzle,我正在按照此处的建议为同步请求计时: 但我还有一个guzzle池,其中包含两个或更多异步执行批处理的请求。我需要检索每个请求返回所需的持续时间 我确信有一种简单的方法来检索我忽略的信息。这些信息在底层的curl中,我只是不确定如何获取它们。结果是,通过收听完整的事件,可以捕获整个transferinfo: $client = new \GuzzleHttp\Client(); $guzzleRequests = $this->getGuzzleRequests();

我正在按照此处的建议为同步请求计时:

但我还有一个guzzle池,其中包含两个或更多异步执行批处理的请求。我需要检索每个请求返回所需的持续时间


我确信有一种简单的方法来检索我忽略的信息。这些信息在底层的curl中,我只是不确定如何获取它们。

结果是,通过收听完整的事件,可以捕获整个transferinfo:

    $client = new \GuzzleHttp\Client();
    $guzzleRequests = $this->getGuzzleRequests();

    foreach($guzzleRequests as $myRequest)
    {
        $myRequest->getEmitter()->on(
            'complete',
            function (CompleteEvent $e) {
                var_dump($e->getTransferInfo());
                var_dump($e->getTransferInfo()['url']);
                var_dump($e->getTransferInfo()['total_time']);
            }
        );
    }

    // Results is a GuzzleHttp\BatchResults object.
    $results = Pool::batch($client, $guzzleRequests);

TransferInfo还有更多功能,但我只需要一个请求url来识别请求的API以及总时间作为持续时间。

事实证明,通过收听完整的事件,可以捕捉到整个TransferInfo:

    $client = new \GuzzleHttp\Client();
    $guzzleRequests = $this->getGuzzleRequests();

    foreach($guzzleRequests as $myRequest)
    {
        $myRequest->getEmitter()->on(
            'complete',
            function (CompleteEvent $e) {
                var_dump($e->getTransferInfo());
                var_dump($e->getTransferInfo()['url']);
                var_dump($e->getTransferInfo()['total_time']);
            }
        );
    }

    // Results is a GuzzleHttp\BatchResults object.
    $results = Pool::batch($client, $guzzleRequests);
TransferInfo还有很多,但我所需要的只是请求url,以确定请求的API以及总时间作为持续时间