Procesos concurrentes en PHP

Buen script que nos puede ser muy útil cuando tenemos que ejecutar varios procesos concurrentes, por ejemplo realizar tareas de administración simultáneas. Para ello es necesario utilizar la función pcntl_fork(). El ejemplo es bastante sencillo, pero podemos personalizar el número de procesos que queremos que se ejecuten concurrentemente:

$maxChildren = 4;
$numChildren = 0;
foreach($unitsOfWork as $unit) {
  $pids[$numChildren] = pcntl_fork();
  if(!$pids[$numChildren]) {
    // do work
    doWork($unit);
      posix_kill(getmypid(), 9);
    } else {
      $numChildren++;
      if($numChildren == $maxChildren) {
        pcntl_wait($status);
        $numChildren--;
      }
    }
}

PHP Forking to Concurrency with pcntl_fork()

Via / PHPDeveloper.org

Similar Posts