Sentido Web

Referencias y explicaciones sobre desarrollo web, PHP, Ajax, XHTML, MySQL ...
11Mar
2010
Comments Off

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

Entradas relacionadas

Los comentarios están cerrados.