所以我想用狂饮一对夫妇的并发请求。 我在网上看到一些例子,这就是我想出了,但似乎无法得到它的工作。 没有错误,没有警告,什么都没有。 我试图记录每一个承诺内,但没有任何反应。
我知道肯定什么也没有发生,因为没有在DB得到插入。 任何想法,我缺少什么? (我得到与其相应的每一个请求then
,因为在每一个承诺结束时,DB操作是特定于该用户)
use GuzzleHttp\Promise\EachPromise;
use Psr\Http\Message\ResponseInterface;
$promises = (function () use($userUrls){
$userUrls->each(function($user) {
yield $this->client->requestAsync('GET', $user->pivot->url)
->then(function (ResponseInterface $response) use ($user) {
$this->dom->load((string)$response->getBody());
// ... some db stuff that inserts row in table for this
// $user with stuff from this request
});
});
});
$all = new EachPromise($promises, [
'concurrency' => 4,
'fulfilled' => function () {
},
]);
$all->promise()->wait();