PHP制作定時任務(wù)(也稱計劃任務(wù))的方法,大概分為2種:
創(chuàng)新互聯(lián)主營金堂縣網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,金堂縣h5重慶小程序開發(fā)搭建,金堂縣網(wǎng)站營銷推廣歡迎金堂縣等地區(qū)企業(yè)咨詢
現(xiàn)在基本所有的PHP框架,如:ThinkPHP,Yii,Laravel等等;它們都是單入口的形式,也就是說所有的請求都集合到index.php中,然后再由框架核心來根據(jù)請求參數(shù)的不同來分配到不同的控制器當(dāng)中。基于單入口的形式,那么就可以做基于行為(例如TP3.2)或者說基于事件的定時任務(wù)。
系統(tǒng)自動的定時任務(wù),比如Linux的crontab,windows的計劃任務(wù)等。
兩中方法各有所長各有所短
基于事件:這種利用的是框架本身提供的一些行為來實現(xiàn),優(yōu)點是:不需要特殊配置,只要項目能跑起來,那么定時任務(wù)也能執(zhí)行。缺點是:靈活性比較差,必須要借助框架實現(xiàn)。
基于系統(tǒng):基于操作系統(tǒng)來實現(xiàn),優(yōu)點是:靈活性很高,而且可控性也很好。缺點是:需要特殊配置,專業(yè)要求性比較強。
具體要使用哪種方法,可以依據(jù)自己的能力和項目需要來選擇。最后附上TP3.2的定時任務(wù)配置,這個只需要配置就可以,如果想查看具體實現(xiàn)原理,可以查看/ThinkPHP/Library/Behavior/CronRunBehavior.class.php
第一步:/Application/Common/Conf目錄下新建兩個文件:
分別如:
/Application/Common/Conf/tags.php
/Application/Common/Conf/crons.php
1)?新建?tags.php,編輯內(nèi)容如下:
return?array(
'app_end'?=?array('Behavior\CronRunBehavior'),
);
2)?新建?crons.php?,編輯內(nèi)容如下:
return?array(
'cron_1'?=?array('myplan',?1),
);
第二步:/Application/目錄下新建?Cron文件夾,里面新建文件myplan.php文件
路徑如:/Application/Cron/myplan.php
編輯內(nèi)容如下:
echo?11111;
查看是否運行成功,最簡單的方法是查看/Application/Runtime/~crons.php,這個文件是否存在。
本教程使用的定時任務(wù)基于EasyTak,EasyTask官方文檔:
(1).安裝tp6
(2).安裝定時任務(wù)composer包
(3).創(chuàng)建命令行處理類文件
會生成文件:tp\app\command\Task.php
將Task.php文件內(nèi)容修改如下:
(4).配置tp\config\console.php文件
(5).執(zhí)行命令(windows請使用cmd):
添加一個全局應(yīng)用程序類,在里面添加如下代碼:
void Application_Start(object sender, EventArgs e) {
Timer t = new Timer(3000); //每隔3秒
t.Enabled = true;
t.AutoReset = true;
t.Elapsed += new ElapsedEventHandler(aaa);
GC.KeepAlive(t);
}
//把下面方法中改成你的數(shù)據(jù)庫操作即可
public void aaa(object sender, ElapsedEventArgs e)
{ FileStream fs = new FileStream("d://a.txt", FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(DateTime.Now);
sw.Close();
fs.Close();
}
可以,第一種:可以在服務(wù)器上寫一個定時任務(wù),每隔一段時間調(diào)用一個插入數(shù)據(jù)接口。
第二種:foreach里面寫sleep(1);暫停
怎么在thinkphp添加數(shù)據(jù)時獲取自動增長的id?
下面是TP5的方法,TP3的在添加后變量直接就獲取了。添加數(shù)據(jù)后如果需要返回新增數(shù)據(jù)的自增主鍵,可以使用 getLastInsID 方法:
Db::name('user')-insert($data);
$userId = Db::name('user')-getLastInsID();或者直接使用 insertGetId 方法新增數(shù)據(jù)并返回主鍵值:
Db::name('user')-insertGetId($data);
ThinkPHP
ThinkPHP是一個免費開源的,快速、簡單的面向?qū)ο蟮妮p量級PHP 開發(fā)框架,遵循?Apache2 開源協(xié)議發(fā)布,是為了簡化企業(yè)級應(yīng)用開發(fā)和敏捷WEB應(yīng)用開發(fā)而誕生的。
基本特性
簡單易用的MVC模式 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
模型(M):模型的定義由Model類來完成。Model類位于項目目錄下面的LibModel目錄。
控制器(C):應(yīng)用控制器(核心控制器)和Action控制器都承擔(dān)了控制器的角色,區(qū)別在于Action控制器完成業(yè)務(wù)過程,而應(yīng)用控制器(App類)負(fù)責(zé)調(diào)度控制。Action控制器位于項目目錄下面的LibAction目錄。
視圖(V):模板的實現(xiàn)是和框架無關(guān)的,做到了100%分離,可以獨立預(yù)覽和制作。模板目錄位于項目目錄下面的Tpl目錄。
2.獨創(chuàng)的核心編譯和二分法項目編譯機制
ThinkTemplate是一個使用了XML標(biāo)簽庫技術(shù)的編譯型模板引擎,支持兩種類型的模板標(biāo)簽,使用了動態(tài)編譯和緩存技術(shù),而且支持自定義標(biāo)簽庫。
分享題目:定時添加數(shù)據(jù)tpphp的簡單介紹
本文來源:http://www.rwnh.cn/article26/hhggjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站維護(hù)、軟件開發(fā)、品牌網(wǎng)站制作、搜索引擎優(yōu)化、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)