Php Guzzle并发请求-这是响应中请求的url
我使用guzzle库进行了一些并发请求。完成此操作的代码:Php Guzzle并发请求-这是响应中请求的url,php,concurrency,guzzle,Php,Concurrency,Guzzle,我使用guzzle库进行了一些并发请求。完成此操作的代码: public function concurrentRequests(array $uri) { $client = $this; $requests = function ($total) use ($client, $uri) { for ($i = 0; $i < $total; $i++) { yield function () use ($client, $uri,
public function concurrentRequests(array $uri)
{
$client = $this;
$requests = function ($total) use ($client, $uri) {
for ($i = 0; $i < $total; $i++) {
yield function () use ($client, $uri, $i) {
return $client->requestAsync('GET', $uri[$i]);
};
}
};
$pool = Pool::batch($client, $requests(count($uri)), [
'concurrency' => 5,
'fulfilled' => function ($response, $index) {
// this is delivered each successful response
},
'rejected' => function ($reason, $index) {
// this is delivered each failed request
},
]);
return $pool;
}
公共函数concurrentRequests(数组$uri)
{
$client=$this;
$requests=函数($total)使用($client,$uri){
对于($i=0;$i<$total;$i++){
yield函数()使用($client,$uri,$i){
返回$client->requestAsync('GET',$uri[$i]);
};
}
};
$pool=pool::批处理($client,$requests(count($uri))[
“并发”=>5,
“已完成”=>函数($response,$index){
//每一次成功的响应都会传递此信息
},
“拒绝”=>函数($reason,$index){
//这将在每个失败的请求中传递
},
]);
返回$pool;
}
我想知道哪个请求属于每个响应。在迭代响应时有什么方法可以做到这一点吗?这很容易,因为methodPool::batch 返回包含响应或异常的数组,其顺序与发送请求的顺序相同