php Yii2框架創(chuàng)建定時(shí)任務(wù)方法詳解
在我們項(xiàng)目開發(fā)中,需要使用定時(shí)任務(wù)來完成批處理業(yè)務(wù),下面通過Yii2框架來實(shí)現(xiàn)定時(shí)任務(wù)
Yii2框架定時(shí)任務(wù)代碼統(tǒng)一放在 ./console
目錄下
簡(jiǎn)單的定時(shí)任務(wù)腳步文件
首先在console/controller目錄下
創(chuàng)建一個(gè)定時(shí)任務(wù)控制器TestController.php
<?php namespace console\controllers; use yii\console\Controller; class TestController extends Controller { /** * 執(zhí)行測(cè)試腳本 */ public function actionDo() { echo 'hello test console'; } }
在控制臺(tái)運(yùn)行命令php yii
,會(huì)看到test
控制下的do
方法
······
- test
test/do 執(zhí)行測(cè)試腳本
執(zhí)行腳步命令php yii 控制器名/方法名,會(huì)輸出
php yii test/do
hello test console
這就完成了一個(gè)簡(jiǎn)單的定時(shí)任務(wù)腳步控制器
傳遞參數(shù)
如果需要傳遞參數(shù)
<?php namespace console\controllers; use yii\console\Controller; class TestController extends Controller { /** * @var integer 接收的參數(shù) */ public $param1; /** * @var string 接收的參數(shù) */ public $param2; /** * 設(shè)置參數(shù) * @param string $actionID * @return string[] */ public function options($actionID) { return [ 'param1', 'param2', ]; } /** * 執(zhí)行測(cè)試腳本 */ public function actionDo() { echo $this->param1 . PHP_EOL; echo $this->param2 . PHP_EOL; } }
其中 param1
和param2
就是參數(shù),執(zhí)行腳步命令php yii 控制器名/方法名 --參數(shù)= ····
php yii test/do --param1=123 --param2=hello
123
hello
設(shè)置參數(shù)別名
如果需要給參數(shù)設(shè)置別名
<?php namespace console\controllers; use yii\console\Controller; class TestController extends Controller { /** * @var integer 接收的參數(shù) */ public $param1; /** * @var string 接收的參數(shù) */ public $param2; /** * 設(shè)置參數(shù) * @param string $actionID * @return string[] */ public function options($actionID) { return [ 'param1', 'param2', ]; } /** * 參數(shù)設(shè)置別名 * @return array */ public function optionAliases() { return [ 'p1' => 'param1', 'p2' => 'param2' ]; } /** * 執(zhí)行測(cè)試腳本 */ public function actionDo() { echo $this->param1 . PHP_EOL; echo $this->param2 . PHP_EOL; } }
其中 p1
和p2
就是參數(shù)的別名,執(zhí)行腳步命令php yii 控制器名/方法名 --參數(shù)= ····
php yii test/do -p1=123 -p2=hello
123
hello
注意:設(shè)置參數(shù)別名后,使用別名參數(shù)用一個(gè)橫桿(-)鏈接。
在Linux配置crontab
執(zhí)行命令crontab -e
,我們以每分鐘執(zhí)行一次為例
*/1 * * * * /usr/bin/php /var/www/html/yii2-project/yii test/do >/dev/null 2>&1
其中
/usr/bin/php
是php運(yùn)行文件/var/www/html/yii2-project/yii
項(xiàng)目目錄中的yii 文件test/do
是執(zhí)行腳步命令>/dev/null 2>&1
這么寫就行哈,可自行查找
保存退出即可。
到此這篇關(guān)于php Yii2框架創(chuàng)建定時(shí)任務(wù)方法詳解的文章就介紹到這了,更多相關(guān)php Yii2框架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用PHP內(nèi)置SERVER開啟web服務(wù)(本地開發(fā)使用)
PHP 5.4.0起, CLI SAPI 提供了一個(gè)內(nèi)置的Web服務(wù)器,這個(gè)內(nèi)置的Web服務(wù)器主要用于本地開發(fā)使用,不可用于線上產(chǎn)品環(huán)境,URI請(qǐng)求會(huì)被發(fā)送到PHP所在的的工作目錄Working Directory進(jìn)行處理,除非你使用了-t參數(shù)來自定義不同的目錄2020-01-01php關(guān)聯(lián)數(shù)組快速排序的方法
這篇文章主要介紹了php關(guān)聯(lián)數(shù)組快速排序的方法,涉及php數(shù)組排序的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04phpmailer在服務(wù)器上不能正常發(fā)送郵件的解決辦法
這篇文章主要介紹了phpmailer在服務(wù)器上不能正常發(fā)送郵件的解決辦法,本文的原因是服務(wù)器的安全設(shè)置造成,服務(wù)器中屏蔽fsockopen函數(shù)的使用權(quán)限,所以導(dǎo)致發(fā)送失敗,需要的朋友可以參考下2014-07-07php通過Chianz.com獲取IP地址與地區(qū)的方法
這篇文章主要介紹了php通過Chianz.com獲取IP地址與地區(qū)的方法,是解析IP地址與地區(qū)非常實(shí)用的技巧,需要的朋友可以參考下2015-01-01php class中public,private,protected的區(qū)別以及實(shí)例分析
本篇文章是對(duì)php class中public,private,protected的區(qū)別以及實(shí)例進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP下ajax跨域的解決方案之window.name實(shí)例分析
這篇文章主要介紹了PHP下ajax跨域的解決方案之window.name,結(jié)合實(shí)例形式分析PHP ajax跨域的解決方案window.name基本原理、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-03-03