ThinkPHP實現定時任務

2022-08-18 10:36:09 字數 1700 閱讀 8743

專案服務端框架我選用的是thinkphp,由於策劃案中有需求要定時重新整理指定資料,所以在windows平台我使用微軟的計畫任務呼叫bat指令碼來執行下面的命令來完成

php index.php /home/cli

即使用php的cli模式呼叫thinkphp的入口檔案,然後再傳入指定控制器完成相應的資料處理。/home/cli 為我新增的名為clicontroller的控制器,在類中index方法呼叫相應處理資料的模組即可。特別注意:在windows平台上執行時在bat指令碼中一定要先將當前執行目錄切換到index.php所在目錄,然後執行php.exe index.php /home/cli.

在linux平台下使用的crontab來實現定時任務,通過crontab -e 新增一條命令,具體寫法可問問度娘,給出我的配置截圖:

#m h dom mon dow command

0 6 * * */bin/sh /mnt/share/web/cli_timer.sh

效果就是每天早上6點執行cli_timer.sh指令碼,指令碼內容如下:

sh -c "cd /mnt/share/webserver;php index.php /home/cli;"

這裡需要說明的是在linux下如果cli_timer.sh指令碼中只包含下面命令
php index.php /home/cli;

是會報路徑包含錯誤的,所以這裡在指令碼中將當前工作路徑切換到index.php指令碼放置的目錄,這樣就能正常使用了。

執著而堅韌的蝸牛,求知於珠海,在通往理想的道路上披荊砍刺,瘦小的身軀蘊含著獨特的思維和豐富的表達.在思索中洞悉it世界的變化.從意氣風發的學生會成員到漸漸成熟的it職業人,我準備好了,跟著我的心靈深處的渴望一起去創造it神話!

專案服務端框架我選用的是thinkphp,由於策劃案中有需求要定時重新整理指定資料,所以在windows平台我使用微軟的計畫任務呼叫bat指令碼來執行下面的命令來完成

php index.php /home/cli

即使用php的cli模式呼叫thinkphp的入口檔案,然後再傳入指定控制器完成相應的資料處理。/home/cli 為我新增的名為clicontroller的控制器,在類中index方法呼叫相應處理資料的模組即可。特別注意:在windows平台上執行時在bat指令碼中一定要先將當前執行目錄切換到index.php所在目錄,然後執行php.exe index.php /home/cli.

在linux平台下使用的crontab來實現定時任務,通過crontab -e 新增一條命令,具體寫法可問問度娘,給出我的配置截圖:

#m h dom mon dow command

0 6 * * */bin/sh /mnt/share/web/cli_timer.sh

效果就是每天早上6點執行cli_timer.sh指令碼,指令碼內容如下:

sh -c "cd /mnt/share/webserver;php index.php /home/cli;"

這裡需要說明的是在linux下如果cli_timer.sh指令碼中只包含下面命令
php index.php /home/cli;

是會報路徑包含錯誤的,所以這裡在指令碼中將當前工作路徑切換到index.php指令碼放置的目錄,這樣就能正常使用了。

ThinkPHP5實現定時任務

namespace usethink console command usethink console input usethink console output class test extends command protected function execute input input,ou...

thinkphp5 定時任務

前段時間在研究thinkphp5.0版本做自動任務的時候,碰到了棘手的問題 如何做自動化任務,因為程式開始就需要一直執行,查了很多資料,都說靠php原生的死迴圈來做不靠譜,時間誤差也沒法保證,所以後面採用thinkphp5的command工具和伺服器的定時任務來做 namespace usethin...

thinkphp6 定時任務

使用命令列形式實現定時任務 一 建立乙個自定義命令類檔案 php think make command hello hello declare strict types 1 namespace use think console command use think console input use...