PHP定時(shí)執(zhí)行計(jì)劃任務(wù)的多種方法小結(jié)
1、windows 的計(jì)劃任務(wù)
2、linux的腳本程序
3、讓web瀏覽器定時(shí)刷新
具體實(shí)現(xiàn)
windows計(jì)劃任務(wù)
PHP很少在win服務(wù)器上跑,具體實(shí)現(xiàn)也不再深究,看網(wǎng)上實(shí)現(xiàn)的原理大概是寫bat腳本,然后讓window任務(wù)添加執(zhí)行這個(gè)bat腳本,具體可以參考:http://www.dbjr.com.cn/article/29134.htm
linux 的腳本實(shí)現(xiàn)
這里主要使用到crontab這個(gè)命令,
使用方式 :
crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }
說明 :
crontab 是用來讓使用者在固定時(shí)間或固定間隔執(zhí)行程式之用
使用crontab寫shell腳本,然后讓PHP調(diào)用shell,這個(gè)是利用linux的特性,應(yīng)該還不算PHP自身語言的特性
可以參看:http://www.dbjr.com.cn/article/29136.htm
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)閉頁面依然正常執(zhí)行
如果程序一直執(zhí)行很有可能會(huì)消耗大量的資源,解決辦法使用sleep使用程序休眠一會(huì),然后在執(zhí)行
PHP定時(shí)執(zhí)行的代碼:
<?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 '測試'.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 '測試'.time().'<br/>';
sleep($interval);// 等待5s
}
ob_flush();
flush();
$etime = $curl->getmicrotime();
echo '<hr>';
echo round(($etime-stime),4);//程序執(zhí)行時(shí)間
測試的時(shí)候發(fā)現(xiàn)這個(gè)效率并不是很高,
總結(jié):
個(gè)人感覺PHP定時(shí)執(zhí)行任務(wù)的效率不是很高,建議關(guān)于定時(shí)執(zhí)行任務(wù)的工作還是交給shell來做吧,比較那才是王道。
ps:那個(gè)死循環(huán)的方法好像是惡意攻擊網(wǎng)站經(jīng)常使用的方法
相關(guān)文章
深入理解PHP幾個(gè)算法:PHP冒泡、PHP二分法、PHP求素?cái)?shù)、PHP乘法表
本篇文章是對(duì)PHP冒泡、PHP二分法、PHP求素?cái)?shù)、PHP乘法表進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP與Java對(duì)比學(xué)習(xí)日期時(shí)間函數(shù)
本文給大家介紹的是從Java和PHP進(jìn)行對(duì)比復(fù)習(xí)了下日期時(shí)間的處理函數(shù),并給出了一些示例,希望對(duì)大家能夠有所幫助2016-07-07php將文件夾打包成zip文件的簡單實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猵hp將文件夾打包成zip文件的簡單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10php字符串函數(shù)學(xué)習(xí)之substr()
這篇文章主要介紹了php字符串函數(shù)學(xué)習(xí)之substr(),本文講解了它的定義和用法、參數(shù)描述、提示和注釋以及多個(gè)使用示例 ,需要的朋友可以參考下2015-03-03