protected function sendAllRequests(array $requests) : array
{
try {
$responses = [];
$client = $this->createClient();
if ($this->parallelSending) {
// Send parallel requests
// Create promises
$promises = [];
foreach ($requests as $server => $request) {
$promises[$server] = $client->sendAsync($request, $this->requestOptions);
}
// Wait on all of the requests to complete
$responses = [];
foreach ($promises as $server => $promise) {
$responses[$server] = $promise->wait();
}
// Log
if (null !== $this->logger) {
foreach ($responses as $server => $response) {
$this->logger->log(sprintf("%s %d %s", $requests[$server]->getMethod(), $response->getStatusCode(), $requests[$server]->getUri()));
}
}
} else {
// Send by separate requests
foreach ($requests as $server => $request) {
$response = $client->send($request, $this->requestOptions);
$responses[$server] = $response;
// Log
if (null !== $this->logger) {
$this->logger->log(sprintf("%s %d %s", $request->getMethod(), $response->getStatusCode(), $request->getUri()));
}
}
}
return $responses;
} catch (\GuzzleHttp\Exception\GuzzleException $e) {
throw new Exception($e->getMessage(), 0, $e);
}
}