Home  >  Article  >  Backend Development  >  Using pcntl and libevent to implement Timer function in PHP_PHP tutorial

Using pcntl and libevent to implement Timer function in PHP_PHP tutorial

WBOY
WBOYOriginal
2016-07-20 11:17:31922browse

 


function newChild($func_name) {
    echo "enter newChildn";
    $args = func_get_args();
    unset($args[0]);
    $pid =  pcntl_fork();
    if ($pid == 0) {
        function_exists($func_name) and exit(call_user_func_array($func_name, $args)) or exit(-1);
    } else if($pid == -1) {
        echo "Couldn't create child process";
    } else {
        return $pid;
    }
}


function on_timer() {
    echo "timer calledn";
}


/**
 * @param $func string, function name
 * @param $timeouts int, microtimes for time delay
 */
function timer($func, $timeouts){


    echo "enter timern";
    $base = event_base_new();
    $event = event_new();


    event_set($event, 0, EV_TIMEOUT, $func);
    event_base_set($event, $base);
    event_add($event, $timeouts);


    event_base_loop($base);
}


$pid = newChild("timer", "on_timer", 5000000);


if ($pid > 0) {
    echo "master process exitn";
}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/371960.htmlTechArticle?php function newChild($func_name) { echo enter newChildn; $args = func_get_args(); unset($args[0]); $pid = pcntl_fork(); if ($pid == 0) { function_exists($func_name) and exit(call...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn