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";
??}
}
php实现常驻进程 多进程监控
原文地址:https://www.cnblogs.com/php-linux/p/10420878.html