《PHP教程:PHP定時(shí)執(zhí)行任務(wù)的3種方法詳解》要點(diǎn):
本文介紹了PHP教程:PHP定時(shí)執(zhí)行任務(wù)的3種方法詳解,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
PHP定時(shí)執(zhí)行的三種方式實(shí)現(xiàn)PHP學(xué)習(xí)
具體實(shí)現(xiàn)
1、windows計(jì)劃任務(wù)PHP學(xué)習(xí)
PHP很少在win服務(wù)器上跑,具體實(shí)現(xiàn)也不再深究,看網(wǎng)上實(shí)現(xiàn)的原理大概是寫bat腳本,然后讓window任務(wù)添加執(zhí)行這個(gè)bat腳本.
2、linux 的腳本實(shí)現(xiàn)
這里主要使用到crontab這個(gè)命令,
使用方式 :PHP學(xué)習(xí)
說明 :PHP學(xué)習(xí)
crontab是用來讓使用者在固定時(shí)間或固定間隔執(zhí)行程式之用PHP學(xué)習(xí)
使用crontab寫shell腳本,然后讓PHP調(diào)用shell,這個(gè)是利用linux的特性,應(yīng)該還不算PHP自身語(yǔ)言的特性PHP學(xué)習(xí)
3、PHP實(shí)現(xiàn)定時(shí)執(zhí)行計(jì)劃任務(wù)
使用php讓瀏覽器刷新需要解決幾個(gè)問題
PHP腳本執(zhí)行時(shí)間限制,默認(rèn)的是30m 解決方法:set_time_limit();或者修改PHP.ini 設(shè)置max_execution_time時(shí)間(不推薦)
如果客戶端瀏覽器關(guān)閉,程序可能就被迫終止,解決方法:ignore_user_abort即使關(guān)閉頁(yè)面依然正常執(zhí)行
如果程序一直執(zhí)行很有可能會(huì)消耗大量的資源,解決方法使用sleep使用程序休眠一會(huì),然后在執(zhí)行
PHP定時(shí)執(zhí)行的代碼:
PHP學(xué)習(xí)
<?php ignore_user_abort();//關(guān)掉瀏覽器,PHP腳本也可以繼續(xù)執(zhí)行. set_time_limit(3000);// 通過set_time_limit(0)可以讓程序無限制的執(zhí)行下去 $interval=5;// 每隔5s運(yùn)行 //辦法1--死循環(huán) do{ echo '測(cè)試'.time().'<br/>'; sleep($interval);// 等待5s }while(true); //辦法2---sleep 定時(shí)執(zhí)行 require_once './curlClass.php';//引入文件 $curl = new httpCurl();//實(shí)例化 $stime = $curl->getmicrotime(); for($i=0;$i<=10;$i++){ echo '測(cè)試'.time().'<br/>'; sleep($interval);// 等待5s } ob_flush(); flush(); $etime = $curl->getmicrotime(); echo '<hr>'; echo round(($etime-stime),4);//程序執(zhí)行時(shí)間
測(cè)試的時(shí)候發(fā)現(xiàn)這個(gè)效率并不是很高.PHP學(xué)習(xí)
PHP學(xué)習(xí)
總結(jié):PHP學(xué)習(xí)
個(gè)人感覺PHP定時(shí)執(zhí)行任務(wù)的效率不是很高,建議關(guān)于定時(shí)執(zhí)行任務(wù)的工作還是交給shell來做吧.
PHP學(xué)習(xí)
以上就是PHP定時(shí)執(zhí)行任務(wù)的3種辦法,對(duì)于前一篇文章結(jié)尾中提到的crontab這個(gè)命令,也進(jìn)行了簡(jiǎn)單介紹,希望大家能夠有所收獲.PHP學(xué)習(xí)
歡迎參與《PHP教程:PHP定時(shí)執(zhí)行任務(wù)的3種方法詳解》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/8198.html