實現思路如下:通過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\dzx2php.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 。 其它參考文章:定時任務行為擴充php自動執行php檔案