【发布时间】:2018-09-03 14:07:49
【问题描述】:
我正在使用 guzzle Pool 执行多个 api 并发请求。 一切正常。
但如果有任何请求得到响应,我想停止/避免所有请求。也就是说,我想在请求之间进行一些比赛。是否可以在 laravel 中使用 Guzzle?
这是我到目前为止所做的:
$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 数组
【问题讨论】: