最近由於項目需要定時對遠程數據庫上做一些處理,這裡就需要做一個計劃任務樣子的東西了。經過努力,終於使用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是專業級別的了。