为了账号安全,请及时绑定邮箱和手机立即绑定

php守护进程一直在但是长时间运行后仍然会挂起不执行?

php守护进程一直在但是长时间运行后仍然会挂起不执行?

PHP
慕尼黑的夜晚无繁华 2019-03-14 01:35:19
先上代码:(没用框架,全部原生) `script.php`: reqiure_once('path/to/HandleClass.php'); function run(){ //省略取值逻辑。。。 if(A==B) { // HandleClass里每次都会重新建立DB连接,并及时释放 new HandleClass(); } } while(true){ run(); sleep(600); } 使用的是`supervisor`的守护进程功能, 它确实可以保证进程在,并且保证进程退出后自动重启。 出现问题: 脚本大概半个月、一个月左右就会出现进程在, 却不干事了。 查资料说可能是变量、 DB等资源长时间就被释放了,但我觉得sleep(600)之后,重新run(), 又是全新的一次执行,并不存在因为被释放资源导致的挂起(乃最大疑惑)。 请教: 以上进程挂起到底可能是什么原因, 困扰很久了。。。 请只针对这种情况, 直接一句换crontab 等回答就免抬贵手了 :-)
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

打印下日志,在sleep后面

查看完整回答
反对 回复 2019-03-18
?
达令说

TA贡献1821条经验 获得超6个赞

资源长时间就被释放这种说法,我是不认同的。我一个项目用的是纯PHP多进程守护处理任务,跑了一年多都没问题。

仅从代码上,尚未看出有什么问题。是否可以多加些运行日志,这样有助于排查问题?

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 341 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信