-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Guzzle v7.4.2
Takes 20+ seconds:
foreach(range(1, 10) as $request) {
$stack = HandlerStack::create();
$client = new Client(['handler' => $stack]);
$promises[] = $client->getAsync('https://httpbin.org/delay/2');
}
Utils::all($promises)->wait()Takes 3 seconds:
$stack = HandlerStack::create();
foreach(range(1, 10) as $request) {
$client = new Client(['handler' => $stack]);
$promises[] = $client->getAsync('https://httpbin.org/delay/2');
}
Utils::all($promises)->wait()I need to process promises produced by various clients with different handler stacks. I have middleware in these stacks that perform auth, etc... So I cannot get away with using 1 stack and 1 client to fulfill every promise. But as you see in the code snippet above, it's not behaving as expected.
I copied your example here line by line into Tinkerwell, and it's also not behaving as expected.
I can always solve the problem with Spatie's Fork, but I've had bad compatibility experiences with it not working on some fpm environments. It's a package that I'm creating, so I'd like to stay as close to native Guzzle as possible.
Let me know if you have anything in mind. If you think it's a bug, I can always open an issue over on Guzzle.