詳解thinkphp5.1如何實現定時任務

下面由thinkphp框架教程欄目給大家詳解thinkphp5.1如何實現定時任務,希望對需要的朋友有所幫助!

前言

我和我的小伙伴們用thinkphp5.1寫了一個微課堂的的小系統,要實現一個每天上課提醒和數據初始化的功能,現在方法寫好了,不過每次執行都需要在管理員界面手動點一下,感覺好麻煩,如何讓他每天定時自動執行呢?
詳解thinkphp5.1如何實現定時任務

前人方法

谷歌上搜tp5.1 定時任務或者計劃任務,會有很多博客,但是大多數都是linux下的腳本,本人剛剛安裝上Linux系統,對Linux不太熟悉,先用windows系統實現。

思路

windows環境下與Linux環境下實現思路是一樣的。
1.現將實現方法寫到一個觸發器里,實現可以點擊跳轉實現。
2.寫一個腳本,實現自動打開摸個網頁。
3.利用windows自帶的定時任務每隔一段時間自動執行這個腳本。

實現

1.我們現在login控制器下寫一個測試的觸發器

public function test() // 自動執行測試 {     echo "這是一個定時任務的測試"; }

觸發效果如下
詳解thinkphp5.1如何實現定時任務

立即學習PHP免費學習筆記(深入)”;

2.寫一個.bat形式的腳本,實現自動打開本網頁。

再建一個.txt文件,寫入執行成功信息。
詳解thinkphp5.1如何實現定時任務

代碼如下

@echo off  start iexplore.exe http://127.0.0.1/index/login/test      Ping -n 5 127.1>nul      Taskkill /f /im iexplore.exe  echo success >> test.txt

start iexplore.exe http://127.0.0.1/index/login/test 表示打開瀏覽器的網址具體網址寫在最后,Ping -n 5 127.1>nul 表示等待5秒,Taskkill /f /im iexplore.exe表示關閉瀏覽器,echo success >> test.txt表示返回成功到記事本,由于寫注釋在代碼中會報錯,故在此寫一下代碼注釋。
點擊測試.bat文件
詳解thinkphp5.1如何實現定時任務

記事本效果如下圖
詳解thinkphp5.1如何實現定時任務

也可以把寫入記事本的代碼改成釘釘提醒
代碼如下

curl -X POST -H "Content-type: application/json" ^ --data  "{"text": {"content": "每日初始完成"}, "msgtype": "text"}" ^ https://oapi.dingtalk.com/robot/send?access_token=23dc64f0dee37b5ee3b1ac472b2c84d837afa15b2a884b87b32f898998408a36

由于現在增加釘釘機器人功能暫時關閉,在此不再演示。

3.用windows自帶計劃任務實現定時自啟動腳本

點開控制面板,點擊管理工具->任務計劃程序->創建基本任務
詳解thinkphp5.1如何實現定時任務

名稱:每日初始
觸發器:每天
開始: ? ? ? //選擇一個你喜歡的時間
操作:啟動程序->選中這個腳本
完成
詳解thinkphp5.1如何實現定時任務

到設定的時間他就會自動啟動。

結語

Linux系統具體操作方法不一樣,但思路都是一樣的,我將我看到的一篇博客連接提供到底下,等我了解Linux系統后,用Linux系統實現。

相關推薦:最新的10個thinkphp視頻教程

以上就是詳解

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享