当前位置:Gxlcms > PHP教程 > PHP定时执行计划任务的多种方法小结_PHP

PHP定时执行计划任务的多种方法小结_PHP

时间:2021-07-01 10:21:17 帮助过:17人阅读

PHP定时执行的三种方式实现
1、windows 的计划任务
2、linux的脚本程序
3、让web浏览器定时刷新

具体实现

windows计划任务

PHP很少在win服务器上跑,具体实现也不再深究,看网上实现的原理大概是写bat脚本,然后让window任务添加执行这个bat脚本,具体可以参考:http://www.bitsCN.com/article/29134.htm

linux 的脚本实现
这里主要使用到crontab这个命令,

使用方式 :

crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

说明 :

crontab 是用来让使用者在固定时间或固定间隔执行程式之用

使用crontab写shell脚本,然后让PHP调用shell,这个是利用linux的特性,应该还不算PHP自身语言的特性

可以参看:http://www.bitsCN.com/article/29136.htm

PHP实现定时执行计划任务
使用php让浏览器刷新需要解决几个问题
PHP脚本执行时间限制,默认的是30m 解决办法:set_time_limit();或者修改PHP.ini 设置max_execution_time时间(不推荐)
如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行
如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行
PHP定时执行的代码:
代码如下:
  1. <br><!--?php <BR-->ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. <br>set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去 <br>$interval=5;// 每隔5s运行 <br><br>//方法1--死循环 <br>do{ <br>echo '测试'.time().'<br>'; <br>sleep($interval);// 等待5s <br>}while(true); <br><br>//方法2---sleep 定时执行 <br>require_once './curlClass.php';//引入文件 <br><br>$curl = new httpCurl();//实例化 <br>$stime = $curl->getmicrotime(); <br>for($i=0;$i<=10;$i++){ <br><br>echo '测试'.time().'<br>'; <br>sleep($interval);// 等待5s <br><br>} <br>ob_flush(); <br>flush(); <br>$etime = $curl->getmicrotime(); <br>echo '<hr>'; <br>echo round(($etime-stime),4);//程序执行时间 <br> <br>
  2. <p>测试的时候发现这个效率并不是很高,</p>
  3. <p><img title="QQ截图20111216110444" style="BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="268" alt="QQ截图20111216110444" src="http://img.bitscn.com/upimg/allimg/c140721/140591192N1250-2LC.jpg" width="458" border="0"> <br>总结: <br>个人感觉PHP定时执行任务的效率不是很高,建议关于定时执行任务的工作还是交给shell来做吧,比较那才是王道。 <br>ps:那个死循环的方法好像是恶意攻击网站经常使用的方法 </p>

人气教程排行