手机版

详细说明PHP定期执行任务的三种方法

时间:2021-09-20 来源:互联网 编辑:宝哥软件园 浏览:

实现PHP常规执行的三种方法。

1.windows 2的计划任务。linux 3的脚本程序。web浏览器定期刷新的具体实现1。windows的计划任务。

PHP很少在win服务器上运行,具体实现也不再探讨。在线实现的原理大概就是写bat脚本,然后让窗口任务添加并执行这个bat脚本。2.linux的脚本实现这里主要使用crontab命令,使用:

复制代码如下: crontab file crontab[-u user][-u user]{-l |-r |-e }

解释:

Crontab用于允许用户在固定的时间或间隔运行程序。

用crontab写shell脚本,然后让PHP调用shell,这是linux的一个特性,不应该是PHP自己语言的特性。

3.php实现了预定的执行任务。使用PHP刷新浏览器需要解决几个问题。PHP脚本执行时限,默认为30m解决方案:set _ time _ limit();或者修改PHP.ini设置max_execution_time(不推荐)。如果客户端浏览器关闭,程序可能会被迫终止。解决方案:忽略_用户_中止。即使页面关闭,它仍然会正常执行。如果程序继续执行,很可能会消耗大量资源。解决方法:用sleep睡一会儿,然后执行PHP定期执行的代码。

?phpignore _ user _ abort();//关闭浏览器,PHP脚本可以继续执行。set _ time _ limit(3000);//通过set_time_limit(0),程序可以无限期执行。$ interval=5;//每5s运行一次//方法1-无限循环做{ echo ' test。时间()。br/';睡眠($ interval);//等待5s } while(true);//方法2 - sleep定期执行require _ once’。/CurlClass . PHP ';//导入文件$ curl=new httpurl();//实例化$ stime=$ curl-getmicrotime();for($ I=0;$ i=10$i ){ echo' test。时间()。br/';睡眠($ interval);//等待5s } ob _ flush();flush();$ etime=$ curl-getmicrotime();echo ' hrecho round($ etime-stime),4);//程序执行时间测试时,发现这个效率不是很高。

总结:

个人觉得PHP在定期执行任务方面效率不是很高。我建议定期执行任务的任务应该留给shell。

这是PHP定期执行任务的三种方法。上一篇文章最后提到的crontab命令也简单介绍了一下,希望大家能有所收获。

版权声明:详细说明PHP定期执行任务的三种方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。