php脚本守护进程设计

来源:互联网 发布:泉州会计网络继续教育 编辑:程序博客网 时间:2024/05/02 04:54

思路:

while 循环,若当前没有数据要操作可以休眠;crontab 脚本每隔固定时间段执行该脚本,执行时先检测是否已在执行,若无 执行,有则 跳过。nohup  后台执行flock -xn  加锁

实例:
要执行代码:index.php

<?phpset_time_limit(0);//死循环while(1) {    $message = '1111111' . "\n";    error_log($message);    sleep(5);}
#/tmp/lock/test1.lock 为当前进程要锁定的文件,不同的进程配置不同的锁文件,该文件会自动创建* * * * * flock -xn /tmp/lock/test1.lock -c nohup php index.php >> /php/test.log 2>&1 &

在写好的php脚本。为防止守护进程内存溢出,建议定期检测内存占用。
将以下代码放到业务脚本中:

if(memory_get_usage()>100*1024*1024){    exit('内存溢出');//大于100M内存退出程序,防止内存泄漏被系统杀死导致任务终端}

注意:
nohup 任务查看与关闭方法:
关闭:

//方法一:ps -e | grep commendkill -9 pid//方法二:fg %n   //n为jobs命令查看的进程号

查看:

//查看后台进程jobs    
1 0
原创粉丝点击