Procesos concurrentes en PHP

Publicado el 11 marzo 2010 por Displaynone

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