PHP Process Pool is a simple process pool using Symfony Process
- PHP >= 8.4
- proc_open
composer require gemorroj/process-pooluse ProcessPool\ProcessPool;
use Symfony\Component\Process\Process;
function processGenerator(): \Generator {
for ($i = 0; $i < 10; $i++) {
yield new Process(['sleep', $i]);
}
}
$pool = new ProcessPool(processGenerator());
$pool->wait(); // run all processes and wait for completionrun() is a streaming alternative to wait(): it yields a ProcessFinished
event as soon as each process finishes.
foreach ($pool->run() as $event) {
echo $event->getProcess()->getOutput();
}