實現思路如下:
通過win的“任務”功能來定時執行一個bat檔案,bat檔案會調用php.exe檔案,php.exe可以傳遞參數指定執行哪個類和方法
方法如下:
一,thinkphp開啟cli支援
1、tp正好支援cli命令模式,手冊的路徑為13.7.4
如果是用的其他架構不支援cli,那麼只能直接寫程式了,其實就是寫面向過程的最基礎的php代碼。
2、在入口檔案下開啟命令,加入一句
define('MODE_NAME', 'cli');
網站一般還有可以通過網頁訪問的模組,所以可以建立立一個cli的入口如index_cli.php,這樣其他的模組還可以通過正常的入口進入。有的手冊上寫的開始cli定義的是define(' THINK_MODE ', 'cli'); ,可能是版本不同,注意這點。
二、建立立bat檔案
建立立一個txt檔案,裡面寫上如下三行內容:
d:
cd D:\workspace\dzx2
php.exe D:\workspace\dzx2\index_cli.php Sms/sendjob>c:\smslog.txt
意思以此是:目前的目錄移動到d盤,目前的目錄移動到D:\workspace\dzx2檔案夾下(我的項目入口檔案),通過絕對路徑的php.exe 空格輸入絕對的項目cli入口檔案,後面空格+參數(我已經把php.exe添加到了系統的環境變數的path變數中,所以唯寫了php.exe)
簡單就是:目前的目錄移動到項目入口檔案,絕對路徑的php.exe+絕對路徑的項目入口檔案+參數
吧txt檔案改為bat尾碼的可執行檔,單擊測試是否把執行了方法
(可以在bat檔案最後寫個Pause,來看看是否報錯,或直接寫入“ >c:\smslog.txt ”吧輸出的內容匯入到一個txt檔案,運行後查看該檔案就知道報錯與否或報哪些錯誤)
三、建立任務
win下是 控制台??》管理程式??》工作排程器
右擊 工作排程器庫 -》建立任務
啟動並執行賬戶一定要有許可權
觸發器-》建立 選擇頻率次數等功能
操作-》建立 選 啟動程式 在下面找到自己寫的bat檔案
其他的可以自己看看
建立任務後,點程式運行一下,看看啟動並執行時間和結果還有自己程式所做的事做了沒有,
有錯的話注意的是包含 所選使用者權限、各個路徑是否正確、程式是否正確
所以一般做是首先,保證通過url地址訪問程式運行ok,然後,是單擊bat檔案程式運行ok,再然後是任務計劃運行ok 。