我們在之前的文章中為大家介紹了php規劃任務的實作原理,相信對此小夥伴們都理解了php規劃任務的原理,那麼我們今天繼續給大家介紹一下php如何實現定時執行計劃任務!
課程推薦:《PHP線上訓練課程》
一、windows計劃任務
1、寫一個PHP程序,命名為test.php
,內容如下圖
<? $fp = fopen("test.txt", "a+"); fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!\n"); fclose($fp); ?>
程式大膽地寫,什麼include\require儘管用,都沒問題
2、新建Bat
文件,命名為test.bat,內容如下所示:
D:\php\php.exe -q D:\website\test.php
3、建立WINDOWS計畫任務:
開始–>控制面板–>任務計畫–>新增任務計畫
瀏覽資料夾選擇上面的bat
檔案
設定時間和密碼(登陸WINDOWS的)
已儲存即可了。
4、over! 可以右鍵規劃任務點「執行」試試
二、linux 的腳本實作
##一、在 Crontab中使用PHP執行腳本
myscript.php如下:
#
# crontab -e 00 * * * * /usr/local/bin/php /home/john/myscript.php
/usr/local/bin/php為PHP程式的路徑。
二、在Crontab中使用URL執行腳本
如果你的PHP腳本可以透過URL觸發,你可以使用lynx或curl或wget來設定你的Crontab 。 下面的例子是使用Lynx文字瀏覽器存取URL來每小時執行PHP腳本。 Lynx文字瀏覽器預設使用對話方式開啟URL。但是,像是下面的,我在lynx命令列中使用-dump選項來把URL的輸出轉換來標準輸出。
00 * * * * lynx -dump http: //www.centos.bz/myscript.php
下面的範例是使用CURL存取URL來每5分執行PHP腳本。 Curl預設在標準輸出顯示輸出。使用”curl -o”選項,你也可以把腳本的輸出轉儲到臨時檔案。
*/5 * * * * /usr/bin/curl -o temp.txt http: //www.centos.bz/myscript.php下面的範例是使用WGET存取URL來每10分執行PHP腳本。 -q選項表示安靜模式。 ”-O temp.txt」表示輸出會傳送到暫存檔案
*/10 * * * * /usr/bin/wget -q -O temp.txt http: //www.centos.bz/myscript.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);//程序执行时间測試的時候發現這個效率並不是很高
總結:
以上是php如何實現定時執行計劃任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!