Как проверить асинхронный запрос в PHP жрет? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть 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?

...