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