У меня есть getAsync()
в моем HTTP
классе
public static function getAsync($urls) {
try {
$client = new Client();
$options = [
'http_errors' => false,
'connect_timeout' => 3.14,
'read_timeout' => 3.14,
'timeout' => 3.14,
'verify' => false,
];
$headers = [
'headers' => [
'Keep-Alive' => 'timeout=300'
]
];
foreach ($urls as $name => $url) {
$promises[$name] = $client->requestAsync('GET', $url, $headers, $options);
}
$results = Promise\settle($promises)->wait();
$array = [];
foreach ($results as $name => $data) {
if ($data['state'] === 'fulfilled') {
$array[$name] = json_decode($data['value']->getBody()->getContents(),TRUE);
} else {
return $data['reason'];
}
}
return $array;
} catch (ConnectException $e) {
//Logging::error($e);
return null;
}
}
В моем контроллере я сделал
$cpeCountUrl = $ip.':'.$port.'/devices/all.count';
$deviceCountUrl = $ip.':'.$port.'/devices/all.count';
$nodeRegistrationsUrl = $ip.':'.$port.'/registrations';
$promises = [];
$promises['cpeCount'] = $cpeCountUrl;
$promises['deviceCount'] = $deviceCountUrl;
$promises['nodeRegistrations'] = $nodeRegistrationsUrl;
$responses = HTTP::getAsync($promises);
//dd($responses);
$cpeCount = $responses['cpeCount']['data']['Count_of_devices'];
$deviceCount = $responses['deviceCount']['data'];
$totalDeviceCount = $deviceCount['Count_of_devices'];
$activeDeviceCount = $deviceCount['Count_of_active'];
Все работает отлично, как и ожидалось, как мне проверить или доказать, что мои 3 запроса теперь запускаются одновременно?
Есть ли tool
, site
, app
, которые я могу использовать для проверки или проверки requestAsync()
в Guzzle?