加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱故事小小网_铜陵站长网 (http://www.0562zz.com/)- 视频终端、云渲染、应用安全、数据安全、安全管理!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php脚本守护进程原理与实现方法详解

发布时间:2021-01-31 22:17:26 所属栏目:PHP教程 来源:网络整理
导读:本篇章节讲解php脚本守护进程原理与实现方法。分享给大家供大家参考,具体如下: 思路: 1. while 循环,若当前没有数据要操作可以休眠;2. crontab 脚本每隔固定时间段执行该脚本,执行时先检测是否已在执行,若无 执行,有则 跳过。3. nohup 后台执行4.

本篇章节讲解php脚本守护进程原理与实现方法。分享给大家供大家参考,具体如下:

思路:

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

实例:

要执行代码:index.php

> /php/test.log 2>&1 &' * * * * * flock -xn /tmp/mytest.lock -c 'php /home/fdipzone/php/test.php >> /home/fdipzone/php/test.log'

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

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

注意:

nohup 任务查看与关闭方法:

关闭:

查看:

原理:

使用linux flock 文件锁实现任务锁定,解决冲突

格式:

选项

-s,--shared: 获得一个共享锁 -x,--exclusive: 获得一个独占锁 -u,--unlock: 移除一个锁,通常是不需要的,脚本执行完会自动丢弃锁 -n,--nonblock: 如果没有立即获得锁,直接失败而不是等待 -w,--timeout: 如果没有立即获得锁,等待指定时间 -o,--close: 在运行命令前关闭文件的描述符号。用于如果命令产生子进程时会不受锁的管控 -c,--command: 在shell中运行一个单独的命令 -h,--help 显示帮助 -V,--version: 显示版本

运行一个php文件,文件锁使用独占锁,如果锁定则失败不等待。参数为-xn

> /home/fdipzone/php/test.log'

这样当任务未执行完成,下一任务判断到/tmp/mytest.lock被锁定,则结束当前的任务,下一周期再判断。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》

希望本文所述对大家PHP程序设计有所帮助。

(编辑:我爱故事小小网_铜陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读