Я делаю несколько одновременных запросов api, используя guzzle Pool. Все работает нормально.
Но я хочу остановить / избежать всех запросов, если какой-либо из запросов ответил. То есть я хочу устроить гонку между запросами. Возможно ли использование Guzzle в laravel?
Вот что я сделал до сих пор:
$requests = function(array $urls){
foreach ($urls as $url) {
yield new Request('GET', $url);
}
};
$pool = new Pool($client,
$requests($urls),
[
'concurrency' => 5,
'fulfilled' => function($response, $index) use ($urls){
echo "<br>Completed ".$urls[$index];
},
'rejected' => function($reason, $index){
echo "Rejected ".$index;
},
]);
$promise = $pool->promise();
$promise->wait();
$ urls - это массив URI