php Yii2框架創(chuàng)建定時(shí)任務(wù)方法詳解
在我們項(xiàng)目開(kāi)發(fā)中,需要使用定時(shí)任務(wù)來(lái)完成批處理業(yè)務(wù),下面通過(guò)Yii2框架來(lái)實(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這么寫(xiě)就行哈,可自行查找
保存退出即可。
到此這篇關(guān)于php Yii2框架創(chuàng)建定時(shí)任務(wù)方法詳解的文章就介紹到這了,更多相關(guān)php Yii2框架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP版 漢字轉(zhuǎn)碼的實(shí)現(xiàn)詳解
本篇文章是對(duì)用php實(shí)現(xiàn)漢字轉(zhuǎn)碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php代碼中使用換行及(\n或\r\n和br)的應(yīng)用
瀏覽器識(shí)別不了\n或\r\n,這兩個(gè)換行符是文本換行符,文本文件有效;如果需要將結(jié)果輸出到瀏覽器或打印到顯示器,代碼中使用br;如果只是在源代碼中換行,則使用\n或\r\n,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)php有所幫助2013-02-02
Ajax+PHP快速上手及簡(jiǎn)單應(yīng)用說(shuō)明
對(duì)于Ajax,最核心的一個(gè)對(duì)象是XMLHttpRequest,所有的Ajax操作都離不開(kāi)對(duì)這個(gè)對(duì)象的操作2013-07-07
PHP簡(jiǎn)單驗(yàn)證碼功能機(jī)制實(shí)例詳解
這篇文章主要介紹了PHP簡(jiǎn)單驗(yàn)證碼功能機(jī)制,結(jié)合實(shí)例形式深入淺出的分析了php驗(yàn)證碼的原理、實(shí)現(xiàn)步驟及相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
php設(shè)計(jì)模式 Command(命令模式)
將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象從而使你可用不同的請(qǐng)求對(duì)客戶(hù)進(jìn)行參數(shù)化,對(duì)請(qǐng)求排除或記錄請(qǐng)求日志,以及支持可取消的操作2011-06-06
解析smarty 截取字符串函數(shù) truncate的用法介紹
本篇文章是對(duì)smarty 截取字符串函數(shù) truncate的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

