詳解PHP實(shí)現(xiàn)執(zhí)行定時(shí)任務(wù)
PHP在這方面應(yīng)該說是比較弱,如果只用php去實(shí)現(xiàn)可以如下:
<?php ignore_user_abort();//關(guān)閉瀏覽器后,繼續(xù)執(zhí)行php代碼 set_time_limit(0);//程序執(zhí)行時(shí)間無限制 $sleep_time = 1;//多長時(shí)間執(zhí)行一次 do{ $fp = fopen('test.txt','a+'); fwrite($fp,"這是一個php博客:phpddt.com \n"); fclose($fp); sleep($sleep_time); }while(true); ?>
但是當(dāng)我執(zhí)行腳本的時(shí)候,即使我關(guān)閉了瀏覽器,我根本就沒法去停止這段程序了,所以你需要一個執(zhí)行腳本的開關(guān),你可以用外部文件引入的方法來實(shí)現(xiàn),在while循環(huán)的時(shí)候,include開關(guān)變量即可。那么就可以這樣實(shí)現(xiàn):
建立外部引入變量文件 switch.php 內(nèi)容如下:
<?php return 1;//1執(zhí)行腳本 0退出執(zhí)行腳本 ?>
改良腳本如下:
<?php ignore_user_abort();//關(guān)閉瀏覽器后,繼續(xù)執(zhí)行php代碼 set_time_limit(0);//程序執(zhí)行時(shí)間無限制 $sleep_time = 5;//多長時(shí)間執(zhí)行一次 $switch = include 'switch.php'; while($switch){ $switch = include 'switch.php'; $fp = fopen('test.txt','a+'); fwrite($fp,"這是一個php博客:phpddt.com $switch \n"); fclose($fp); sleep($sleep_time); } exit(); ?>
這個腳本只是測試可行,具體效率應(yīng)該不高,對于lamp,你完全可以使用crontab 來實(shí)現(xiàn)。
再補(bǔ)充一段小代碼:
ignore_user_abort();//關(guān)掉瀏覽器,PHP腳本也可以繼續(xù)執(zhí)行. set_time_limit(0);// 通過set_time_limit(0)可以讓程序無限制的執(zhí)行下去 $interval=60*30;// 每隔半小時(shí)運(yùn)行 do{ //這里是你要執(zhí)行的代碼 sleep($interval);// 等待5分鐘 }while(true);
關(guān)于PHP定時(shí)執(zhí)行任務(wù)的實(shí)現(xiàn)就為大家介紹這么多,之后還有相關(guān)文章為大家分享,不要錯過。
- PHP通過CURL實(shí)現(xiàn)定時(shí)任務(wù)的圖片抓取功能示例
- 詳解PHP實(shí)現(xiàn)定時(shí)任務(wù)的五種方法
- php版本的cron定時(shí)任務(wù)執(zhí)行器使用實(shí)例
- linux使用crontab實(shí)現(xiàn)PHP執(zhí)行計(jì)劃定時(shí)任務(wù)
- PHP對接微信公眾平臺消息接口開發(fā)流程教程
- php實(shí)現(xiàn)微信公眾平臺賬號自定義菜單類
- 基于php的微信公眾平臺開發(fā)入門實(shí)例
- php微信支付之APP支付方法
- PHP版微信公眾平臺紅包API
- PHP定時(shí)任務(wù)獲取微信access_token的方法
相關(guān)文章
php提示Failed to write session data錯誤的解決方法
這篇文章主要介紹了php提示Failed to write session data錯誤的解決方法,較為詳細(xì)的分析了session寫入錯誤的原因與解決方法,并附帶說明了php的工作機(jī)制,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12PHP檢查文件是否存在,不存在自動創(chuàng)建及讀取文件內(nèi)容操作示例
這篇文章主要介紹了PHP檢查文件是否存在,不存在自動創(chuàng)建及讀取文件內(nèi)容操作,結(jié)合實(shí)例形式分析了PHP針對文件的檢測、創(chuàng)建、遍歷、讀取等相關(guān)操作技巧,需要的朋友可以參考下2020-01-01IIS+fastcgi下PHP運(yùn)行超時(shí)問題的解決辦法詳解
本篇文章是對IIS+fastcgi下PHP運(yùn)行超時(shí)問題的解決辦法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP Class self 與 static 異同與使用詳解
這篇文章主要介紹了PHP中 Class self 與 static 有什么區(qū)別,都怎么用,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-09-09詳解php 使用Callable Closure強(qiáng)制指定回調(diào)類型
這篇文章主要介紹了詳解php 使用Callable Closure強(qiáng)制指定回調(diào)類型的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-10-10PHP訪問MYSQL數(shù)據(jù)庫封裝類(附函數(shù)說明)
MYSQL 數(shù)據(jù)訪問方式,php4支持以mysql_開頭的過程訪問方式,php5開始支持以mysqli_開頭的過程和mysqli面向?qū)ο笤L問方式,本封裝類以mysql_封裝2010-12-12有關(guān)JSON以及JSON在PHP中的應(yīng)用
簡 單地說,JSON 可以將 JavaScript 對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個字符串,或者在異步應(yīng)用程序中將字符串從 Web 客戶機(jī)傳遞給服務(wù)器端程序。2010-04-04PHP使用in_array函數(shù)檢查數(shù)組中是否存在某個值
這篇文章主要介紹了PHP使用in_array函數(shù)檢查數(shù)組中是否存在某個值,較為詳細(xì)的分析了in_array函數(shù)的功能、定義及相關(guān)的使用技巧與注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03