PHP + fork (): Como executar um fork em um código PHP

Estou executando meu código no CodeIgniter - Ubuntu Server.

Eu tenho pesquisado maneiras assíncronas de executar funções.

Esta é a minha função:

<?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'); 

    }

O "foreach" usa variáveis com APIs lentas e atualiza o banco de dados.

Eu vi alguns tutoriais usando fork, mas ainda não entendi bem a parte da sintaxe. A maioria das coisas que encontrei foram apenas explicações de como funciona (2 processos: pai-filho ect '), mas não deram uma boa explicação de como aplicar isso no código.

Alguém pode explicar como eu trabalho com a sintaxe fork ()?

Continue a execução do PHP após enviar a resposta HTTP

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

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

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

EDITAR:

Eu entendi direito?

<?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'); 

}
?>

Isso não causará nenhum problema em usar isso dentro de um loop? saberá empilhar cada processo?

questionAnswers(3)

yourAnswerToTheQuestion