本文实例讲述了php脚本守护进程原理与实现方法。分享给大家供大家参考,具体如下:

思路:
1. while 循环,若当前没有数据要操作可以休眠;
2. crontab 脚本每隔固定时间段执行该脚本,执行时先检测是否已在执行,若无 执行,有则 跳过。
3. nohup 后台执行
4. flock -xn 加锁
实例:
要执行代码:index.php
<?php
set_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 &' * * * * * flock -xn /tmp/mytest.lock -c 'php /home/fdipzone/php/test.php >> /home/fdipzone/php/test.log'
在写好的php脚本。为防止守护进程内存溢出,建议定期检测内存占用。
将以下代码放到业务脚本中:
if(memory_get_usage()>100*1024*1024){
exit('内存溢出');//大于100M内存退出程序,防止内存泄漏被系统杀死导致任务终端
}
注意:
nohup 任务查看与关闭方法:
关闭:
//方法一: ps -e | grep commend kill -9 pid //方法二: fg %n //n为jobs命令查看的进程号
查看:
//查看后台进程 jobs
原理:
使用linux flock 文件锁实现任务锁定,解决冲突
格式:
flock [-sxun][-w #] fd# flock [-sxon][-w #] file [-c] command
选项
-s, --shared: 获得一个共享锁
-x, --exclusive: 获得一个独占锁
-u, --unlock: 移除一个锁,通常是不需要的,脚本执行完会自动丢弃锁
-n, --nonblock: 如果没有立即获得锁,直接失败而不是等待
-w, --timeout: 如果没有立即获得锁,等待指定时间
-o, --close: 在运行命令前关闭文件的描述符号。用于如果命令产生子进程时会不受锁的管控
-c, --command: 在shell中运行一个单独的命令
-h, --help 显示帮助
-V, --version: 显示版本
运行一个php文件,文件锁使用独占锁,如果锁定则失败不等待。参数为-xn
* * * * * flock -xn /tmp/mytest.lock -c 'php /home/fdipzone/php/test.php >> /home/fdipzone/php/test.log'
这样当任务未执行完成,下一任务判断到/tmp/mytest.lock被锁定,则结束当前的任务,下一周期再判断。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP进程与线程操作技巧总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
# php
# 守护进程
# PHP实现守护进程的示例代码
# PHP程序守护进程化实现方法详解
# php实现简单的守护进程创建、开启与关闭操作
# PHP守护进程的两种常见实现方式详解
# 分享PHP守护进程类
# 如何写php守护进程(Daemon)
# PHP扩展程序实现守护进程
# PHP守护进程实例
# php万字码出完美守护进程详解
# 下一
# 操作技巧
# 如果没有
# 相关内容
# 不需要
# 感兴趣
# 不受
# 给大家
# 已在
# 更多关于
# 每隔
# 所述
# 该文件
# 若无
# 跳过
# 写好
# 程序设计
# 移除
# 加锁
# 而不是
相关文章:
如何通过西部数码建站助手快速创建专业网站?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
建站之星微信建站一键生成小程序+多端营销系统
建站之星上传入口如何快速找到?
如何批量查询域名的建站时间记录?
如何通过二级域名建站提升品牌影响力?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
如何在建站之星绑定自定义域名?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
,交易猫的商品怎么发布到网站上去?
建站之星导航菜单设置与功能模块配置全攻略
如何在万网自助建站平台快速创建网站?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何在宝塔面板中创建新站点?
如何在云主机上快速搭建网站?
专业公司网站制作公司,用什么语言做企业网站比较好?
建站之星代理费用多少?最新价格详情介绍
制作网页的网站有哪些,电脑上怎么做网页?
Thinkphp 中 distinct 的用法解析
网站制作的步骤包括,正确网址格式怎么写?
如何在新浪SAE免费搭建个人博客?
如何高效生成建站之星成品网站源码?
如何快速辨别茅台真假?关键步骤解析
如何通过服务器快速搭建网站?完整步骤解析
建站之星如何配置系统实现高效建站?
如何快速搭建支持数据库操作的智能建站平台?
焦点电影公司作品,电影焦点结局是什么?
宝塔面板创建网站无法访问?如何快速排查修复?
如何基于云服务器快速搭建网站及云盘系统?
如何通过主机屋免费建站教程十分钟搭建网站?
已有域名如何快速搭建专属网站?
网站制作网站,深圳做网站哪家比较好?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
英语简历制作免费网站推荐,如何将简历翻译成英文?
网站代码制作软件有哪些,如何生成自己网站的代码?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
高端云建站费用究竟需要多少预算?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
建站之星北京办公室:智能建站系统与小程序生成方案解析
如何通过多用户协作模板快速搭建高效企业网站?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
高防服务器:AI智能防御DDoS攻击与数据安全保障
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
建站之星代理如何优化在线客服效率?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
如何通过VPS建站实现广告与增值服务盈利?
西安专业网站制作公司有哪些,陕西省建行官方网站?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
招商网站制作流程,网站招商广告语?
*请认真填写需求信息,我们会在24小时内与您取得联系。