首頁 >php框架 >ThinkPHP >詳解thinkphp5.1如何實現定時任務

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

藏色散人
藏色散人轉載
2021-06-09 15:19:105251瀏覽

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

前言

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

前人方法

Google上搜tp5.1 定時任務或規劃任務,會有很多博客,但是大多數都是Linux下的腳本,本人剛剛安裝上Linux系統,對Linux不太熟悉,先用Windows系統實作。

想法

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

實作

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

public function test() // 自动执行测试
{
    echo "这是一个定时任务的测试";
}

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

##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影片教學

以上是詳解thinkphp5.1如何實現定時任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除