【发布时间】:2018-07-22 21:19:07
【问题描述】:
我使用 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, $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;
}
我想知道每个响应属于哪个请求。在迭代响应时有什么办法吗?
【问题讨论】:
标签: php concurrency guzzle