PHP + fork (): cómo ejecutar un fork en un código PHP

Estoy ejecutando mi código en CodeIgniter - Ubuntu Server.

He estado investigando formas asíncronas para ejecutar funciones.

Esta es mi función:

<?php   

    // Registers a new keyword for prod to the DB. 
    public function add_keyword() {

        $keyword_p = $this->input->post('key_word');

        $prod      = $this->input->post('prod_name');
        $prod      = $this->kas_model->search_prod_name($prod);
        $prod      = $prod[0]->prod_id;

        $country   = $this->input->post('key_country');

        $keyword = explode(", ", $keyword_p);
        var_dump($keyword); 
        $keyword_count = count($keyword);
        echo "the keyword count: $keyword_count";

        // problematic part that needs forking
        for ($i=0; $i < $keyword_count ; $i++) { 

            // get new vars from $keyword_count
            // run API functions to get new data_arrays
            // inserts new data for each $keyword_count to the DB 

        }

        // Redirect to main page. 
        redirect('banana/kas'); 

    }

El "foreach" utiliza variables con API lentas y actualiza la base de datos.

Vi algunos tutoriales usando fork pero no he entendido la parte de sintaxis. La mayoría de las cosas que encontré fueron solo explicaciones de cómo funciona (2 procesos: ect padre-hijo), pero no dieron una buena explicación de cómo aplicar esto en el código.

¿Alguien puede explicar cómo trabajo con la sintaxis fork ()?

Continuar la ejecución de PHP después de enviar la respuesta HTTP

http://www.onlinetechtutorials.com/2014/06/how-to-run-php-code-asynchronously.html

http://php.net/manual/en/function.pcntl-fork.php (mas general)

Del lado del servidor:https://www.youtube.com/watch?v=xVSPv-9x3gk

EDITAR:

¿Lo entendí bien?

<?php   

// Registers a new keyword for prod to the DB. 
public function add_keyword() {

    $keyword_p = $this->input->post('key_word');

    $prod      = $this->input->post('prod_name');
    $prod      = $this->kas_model->search_prod_name($prod);
    $prod      = $prod[0]->prod_id;

    $country   = $this->input->post('key_country');

    $keyword = explode(", ", $keyword_p);
    var_dump($keyword); 
    $keyword_count = count($keyword);
    echo "the keyword count: $keyword_count";

    for ($i=0; $i < $keyword_count ; $i++) { 
        // create your next fork
        $pid = pcntl_fork();

        if(!$pid){
            //*** get new vars from $keyword_count
            //*** run API functions to get new data_arrays
            //*** inserts new data for each $keyword_count to the DB 
            print "In child $i\n";
            exit($i);
            // end child
        }
    }

    // we are the parent (main), check child's (optional)
    while(pcntl_waitpid(0, $status) != -1){
        $status = pcntl_wexitstatus($status);
         echo "Child $status completed\n";
    }

    // your other main code: Redirect to main page. 
    redirect('banana/kas'); 

}
?>

¿Esto no causará ningún problema al usar esto dentro de un bucle? ¿sabrá apilar cada proceso?

Respuestas a la pregunta(3)

Su respuesta a la pregunta