手机版

PHP定期执行预定任务的各种方法总结

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

有三种方法可以定期实现PHP。windows的计划任务;2.linux的脚本程序;3.通过定期刷新web浏览器来具体实现windows的预定任务。PHP很少在win服务器上运行,具体实现也不再探讨。在线实现的原理大概就是写bat脚本,然后让window task添加并执行这个bat脚本。可以参考://www . JB 51 . net/article/29134 . htm Linux的脚本实现。crontab主要用在这里。 crontab file crontab[-u user][-u user]{-l |-r |-e }的用法说明: crontab是供用户在固定的时间或间隔执行程序,然后用crontab编写shell脚本,再让PHP调用shell。这是linux的一个特性,不应该算作php自己语言的一个特性。请参考://www . JB 51 . net/article/29136 . htm PHP实现定时执行预定任务。使用PHP刷新浏览器需要解决几个问题。PHP脚本执行时限,默认为30m解决方案:set _ time _ limit();或者修改PHP.ini设置max_execution_time(不推荐)。如果客户端浏览器关闭,程序可能会被迫终止。解决方案:忽略_用户_中止。即使页面关闭,它仍然会正常执行。如果程序继续执行,很可能会消耗大量资源。解决方法:用sleep睡一会儿,然后执行PHP定期执行的代码。复制代码如下:PHP ignore _ 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);//程序执行时间测试时,发现这个效率不是很高。QQ截图20111216110444

总结:个人感觉PHP在定期执行任务方面效率不是很高。建议定期执行任务的任务留给shell,相比之下那才是王者。Ps:那个无尽循环法好像是恶意攻击网站经常使用的方法。

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