具體實現

windows計劃任務

PHP很少在win服務器上跑,具體實現也不再深究,看網上實現的原理大概是寫bat腳本,然后讓wi " /> 亚洲午夜精品久久久久久久久久久久,欧美精品久久久久久久,美女国产一区二区

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP定時執行計劃任務的多種方法小結

php定時執行的三種方式實現
1、windows 的計劃任務
2、linux的腳本程序
3、讓web瀏覽器定時刷新

具體實現

windows計劃任務

php很少在win服務器上跑,具體實現也不再深究,看網上實現的原理大概是寫bat腳本,然后讓window任務添加執行這個bat腳本,具體可以參考:http://www.jb51.NET/article/29134.htm

linux 的腳本實現
這里主要使用到crontab這個命令,

使用方式 :

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

說明 :

crontab 是用來讓使用者在固定時間或固定間隔執行程式之用

使用crontab寫shell腳本,然后讓php調用shell,這個是利用linux的特性,應該還不算php自身語言的特性

可以參看:http://www.jb51.NET/article/29136.htm

php實現定時執行計劃任務
使用php讓瀏覽器刷新需要解決幾個問題
php腳本執行時間限制,默認的是30m 解決辦法:set_time_limit();或者修改php.ini 設置max_execution_time時間(不推薦)
如果客戶端瀏覽器關閉,程序可能就被迫終止,解決辦法:ignore_user_abort即使關閉頁面依然正常執行
如果程序一直執行很有可能會消耗大量的資源,解決辦法使用sleep使用程序休眠一會,然后在執行
php定時執行的代碼:
復制代碼 代碼如下:
<?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();//實例化
$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);//程序執行時間

測試的時候發現這個效率并不是很高,

QQ截圖20111216110444 
總結:
個人感覺php定時執行任務的效率不是很高,建議關于定時執行任務的工作還是交給shell來做吧,比較那才是王道。
ps:那個死循環的方法好像是惡意攻擊網站經常使用的方法

php技術PHP定時執行計劃任務的多種方法小結,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 申扎县| 延津县| 平阴县| 临澧县| 石阡县| 清涧县| 镇江市| 河西区| 仪陇县| 墨竹工卡县| 瓮安县| 绥芬河市| 教育| 行唐县| 太白县| 泽普县| 贺州市| 沁源县| 华宁县| 宜州市| 高邮市| 饶阳县| 文安县| 大余县| 青铜峡市| 新泰市| 神农架林区| 木兰县| 阿巴嘎旗| 河间市| 承德市| 东宁县| 海丰县| 永清县| 潞城市| 石家庄市| 菏泽市| 漳浦县| 延吉市| 武安市| 保康县|