<?php
$loop = Loop::get();
$limitThreads = 3;
$soaps = [
// ...
];
$tasks = [];
$limit = $limitThreads;
while ($limit--) {
$soap = array_shift($soaps);
$tasks[] = function () use ($soap) {
// do soap request...
return $result = doSoapRequest($soap);
};
}
if ($tasks) {
$results = await(parallel($tasks));
foreach ($results as $result) {
var_dump($result);
}
}
$loop->run();