php 使用pcntl和libevent 实现timer功能<?php function newchild($func_name) { echo "enter newchild\n"; $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; } } (ps:^_^不错的php开发交流群:256271784,验证:csl,有兴趣的话可以加入进来一起讨论)function on_timer() { echo "timer called\n"; } /** * @param $func string, function name * @param $timeouts int, microtimes for time delay */ function timer($func, $timeouts){ echo "enter timer\n"; $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 exit\n"; }
Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号