PHP定時執行計畫任務的多種方法小結_PHP教程

來源:互聯網
上載者:User
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定時執行的代碼:
複製代碼 代碼如下:
ignore_user_abort();//關掉瀏覽器,PHP指令碼也可以繼續執行.
set_time_limit(3000);// 通過set_time_limit(0)可以讓程式無限制的執行下去
$interval=5;// 每隔5s運行

//方法1--死迴圈
do{
echo '測試'.time().'
';
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().'
';
sleep($interval);// 等待5s

}
ob_flush();
flush();
$etime = $curl->getmicrotime();
echo '';
echo round(($etime-stime),4);//程式執行時間

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


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

http://www.bkjia.com/PHPjc/324645.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/324645.htmlTechArticlePHP定時執行的三種方式實現 1、windows 的計劃任務 2、linux的指令碼程式 3、讓web瀏覽器定時重新整理 具體實現 windows計劃任務 PHP很少在win伺服器上跑...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.