php实现常驻进程 多进程监控

php都是通过crontabd定时脚本处理队列的,面试被问到php如何常驻进程进行处理队列,想了半天这样不知道是否是一种方式 

<?php


function logs()
{
file_put_contents("/www/wang/logs/".date("Y-m-d",time()).".txt",date("Y-m-d H:i:s").PHP_EOL,FILE_APPEND);

}

$i = 1;
while(true){

fork("logs();");

sleep(1);
//$i++;
}

function fork($code)
{
$pid = pcntl_fork();
if ($pid == 0) {
echo "forking 子进程---------pid:".getmypid().PHP_EOL;
eval($code);
exit();
} else if($pid > 0) {
echo 'Oh my god! I am a father now! my pid is '.getmypid().' ---- My child is'. $pid . PHP_EOL;
$quit_pid = pcntl_wait($status);
echo "回收子进程:".$quit_pid.PHP_EOL;
} else {
echo "can not fork";
}
}

 

posted @ 2019-02-22 22:02  brady-wang  阅读(2697)  评论(0编辑  收藏  举报