thinkphp 定時執行php文件 php自動執行php文件


最近開發短信任務和短信發送功能,用到了定時執行php這方面:和大家分享一下:

(個人筆記,寫的不好,海涵海涵,看不懂的話可以留言,但是我一般都能及時回復,其他網上有很多這樣的教程,大家一搜就滿地)
 
 
我用的是thinkphp開發的程序,程序已經開發好了,程序有個分批定時發送功能,每隔一段時間查找一下數據庫,然后把符合條件的短信任務給發送出去,
 
實現思路如下:
通過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

參考地址:

thinkphp 定時執行php文件 php自動執行php文件

http://blog.sina.com.cn/s/blog_4acbd39c01011sme.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM