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

时间:2015-09-01 08:16:12

标签: http asynchronous guzzle

我按照此处的建议定时同步请求: guzzle-6-get-request-total-time

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

我确信有一种简单的方法可以检索我只是忽略的信息。信息是基本的卷曲,我只是不确定如何到达它们。

1 个答案:

答案 0 :(得分:4)

结果,通过听完整事件,可以捕获整个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有更多,但我需要的只是请求网址,以确定请求的API和持续时间的总时间。