最近由於項目需要定時對遠程數據庫上做一些處理,這裡就需要做一個計劃任務樣子的東西了。經過努力,終於使用php實現了這個計劃任務,下面分享一下此次的實現過程。
本次使用php實現計劃任務主要使用了 ignore_user_abort() set_time_limit(0) sleep() 這三個函數。
具體的代碼如下:
<?php ignore_user_abort();//該函數的作用是當用戶關掉浏覽器後,PHP腳本也可以繼續執行. set_time_limit(3000);// 通過set_time_limit(0)可以讓程序無限制的執行下去 $interval=5;// 每隔5s運行 //方法1--死循環 do{ echo '測試'.time().'<br/>'; sleep($interval);// 等待5s }while(true); //方法2---sleep 定時執行 require_once './curlClass.php';//引入文件 $curl=new httpCurl('www.phpernote.com');//實例化 $stime=$curl->getmicrotime(); for($i=0;$i<=10;$i++){ echo '測試'.time().'<br/>'; sleep($interval);// 等待5s } ob_flush(); flush(); $etime=$curl->getmicrotime(); echo '<hr>'; echo round(($etime-stime),4);//程序執行時間
在具體的實現過程中個人感覺PHP定時執行任務的效率並不高,建議關於定時執行任務的工作還是交給shell來做吧,相對來說,這個方法實現的太過勉強,而shell是專業級別的了。