百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> php为何不支撑按时器?
分享文章到:

php为何不支撑按时器?

发布时间:09/01 来源:未知 浏览: 关键词:
常见的按时器有两种:一种周期性按时施行,例如每天的凌晨三点出报表;另一种在指按时间后施行(一次),例如会员登录系统五分钟后发放每日登录奖励。两种状况对应shell中的cron和at命令,与JavaScript中的setInterval和setTimeout函数相似(严厉来说setInterval是周期性施行,指按时间点施行需要自行处置)。

做web开发的PHP程序员对JavaScript中的两个按时器函数应当都还熟知,回到PHP层面就有点傻眼:

PHP中有sleep,但是没有(内置)按时器函数可用。sleep函数牵强可以做到,但会致使进程堵塞,期间不克不及做其他事(或无响应)。为什么PHP没能供给按时器(Timer)这个功效呢?

缘由

个人认为,web开发中PHP不克不及使用按时器的本质缘由是可控 常驻内存运转环境的缺失。两个要点:第一常驻内存,第二可控。CGI模式下,进程施行完足本后直接退出,不克不及盼望其到指按时间运转任务;PHP-FPM模式下,进程(绝大多数)常驻内存,但不成控。

不成控的意思是施行PHP的进程不受PHP代码影响,进程的入口点和退出时机由额外的程序操纵。例如FPM模式下,PHP足本中的exit、die函数只中止足本的施行,不会对施行足本的进程发生特殊的影响(内存泄露除外)。PHP开发人员编写的足本是进程的施行体,施行完毕后就从进程的施行上下文中卸载出去。这种状况下,施行PHP足本的时机依然由外部驱动,没有外部恳求PHP代码就安宁的躺在硬盘上,什么都不做,也就按时任务。

由于PHP主要面向web开发,PHP这种施行模式不乱可靠,开发效力快。比方省略资源开释这一步,就幸免了开发中许多工作量和坑。想想某些第三方库代码中改时区、字符编码等还不复原,在常驻内存运转环境下几乎必定会致使后续恳求有问题。但在FPM模式下,这种坑无意中直接趟平,省略很多调试时间,为程序员保住发际线做出了不小的奉献。

以上就是php为什么不支撑按时器?的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板