Guzzle 5.3 - 获取异步请求的请求持续时间
Guzzle 5.3 - Get request duration for asynchronous requests
我正在按照此处的建议对同步请求进行计时:
guzzle-6-get-request-total-time
但我也有一个 guzzle 池,其中包含两个或多个异步批量执行的请求。我需要检索每个请求花费的持续时间 return.
我确信有一种简单的方法可以检索我刚刚忽略的这些信息。这些信息在底层卷曲中,我只是不确定如何找到它们。
事实证明,通过监听完整的事件,可以捕获整个 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 以及总时间作为持续时间。
我正在按照此处的建议对同步请求进行计时: guzzle-6-get-request-total-time
但我也有一个 guzzle 池,其中包含两个或多个异步批量执行的请求。我需要检索每个请求花费的持续时间 return.
我确信有一种简单的方法可以检索我刚刚忽略的这些信息。这些信息在底层卷曲中,我只是不确定如何找到它们。
事实证明,通过监听完整的事件,可以捕获整个 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 以及总时间作为持续时间。