Yii2 创建定时任务
在我们项目开发中,需要使用定时任务来完成批处理业务,下面通过Yii2框架来实现定时任务
Yii2框架定时任务代码统一放在 ./console
目录下
简单的定时任务脚步文件
首先在console/controller目录下
创建一个定时任务控制器TestController.php
<?phpnamespace console\controllers;use yii\console\Controller;class TestController extends Controller
{/*** 执行测试脚本*/public function actionDo(){echo 'hello test console';}
}
在控制台运行命令php yii
,会看到test
控制下的do
方法
······
- testtest/do 执行测试脚本
执行脚步命令php yii 控制器名/方法名
,会输出
php yii test/do
hello test console
这就完成了一个简单的定时任务脚步控制器
传递参数
如果需要传递参数
<?phpnamespace console\controllers;use yii\console\Controller;class TestController extends Controller
{/*** @var integer 接收的参数*/public $param1;/*** @var string 接收的参数*/public $param2;/*** 设置参数* @param string $actionID* @return string[]*/public function options($actionID){return ['param1','param2',];}/*** 执行测试脚本*/public function actionDo(){echo $this->param1 . PHP_EOL;echo $this->param2 . PHP_EOL;}
}
其中 param1
和param2
就是参数,执行脚步命令php yii 控制器名/方法名 --参数= ····
php yii test/do --param1=123 --param2=hello
123
hello
设置参数别名
如果需要给参数设置别名
<?phpnamespace console\controllers;use yii\console\Controller;class TestController extends Controller
{/*** @var integer 接收的参数*/public $param1;/*** @var string 接收的参数*/public $param2;/*** 设置参数* @param string $actionID* @return string[]*/public function options($actionID){return ['param1','param2',];}/*** 参数设置别名* @return array*/public function optionAliases(){return ['p1' => 'param1','p2' => 'param2'];}/*** 执行测试脚本*/public function actionDo(){echo $this->param1 . PHP_EOL;echo $this->param2 . PHP_EOL;}
}
其中 p1
和p2
就是参数的别名,执行脚步命令php yii 控制器名/方法名 --参数= ····
php yii test/do -p1=123 -p2=hello
123
hello
注意:设置参数别名后,使用别名参数用一个横杆(-)链接。
在Linux配置crontab
执行命令crontab -e
,我们以每分钟执行一次为例
*/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
是执行脚步命令>/dev/null 2>&1
这么写就行哈,可自行查找
保存退出即可。
Yii2 创建定时任务相关推荐
- yii2 设置定时任务
yii2设置定时任务 通过console调用 在 console\controllers 创建 Controller 控制器继承 yii\console\Controller; 例: <?php ...
- mysql事件调度定时任务_详解MySQL用事件调度器Event Scheduler创建定时任务
前言 事件调度器相当于操作系统中的定时任务(如:Linux中的cron.Window中的计划任务),但MySql的事件调度器可以精确到秒,对于一些实时性要求较高的数据处理非常有用. 1. 创建/修改事 ...
- java获取mysql数据定时执行_详解SpringBoot 创建定时任务(配合数据库动态执行)...
序言:创建定时任务非常简单,主要有两种创建方式:一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer). 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库 ...
- python3创建定时任务
python3创建定时任务 文章目录: 一.time模块实现定时任务 1. 睡眠机制 2.取余数的方式 二.datetime模块实现睡眠机制 三.用threading 线程模块实现定制任务 四.用sc ...
- 一篇文章搞定,SpringBoot 创建定时任务
作者:yizhiwazi 链接:https://www.jianshu.com/p/d160f2536de7 序言:创建定时任务非常简单,主要有两种创建方式: 一.基于注解(@Scheduled) 二 ...
- oracle如何创建一个定时任务,怎么创建定时任务
如何创建定时任务? 本帖最后由 minl 于 2013-11-27 14:16:37 编辑 使用dbms_scheduler这个包,但是创建完后似乎不执行. begin DBMS_SCHEDULER. ...
- 使用plsql创建定时任务并执行
2019独角兽企业重金招聘Python工程师标准>>> 前言~ 我们知道plsql工具的使用非常强大,使用它来创建存储过程以及定时任务都非常简单.上篇文章讲解到使用plsql创建存储 ...
- SQL2008如何创建定时任务作业
SQL2008 创建定时任务作业 1.打开[SQL Server Management Studio],在[对象资源管理器]列表中选择[SQL Server 代理]: --2.鼠标右击[SQL Ser ...
- java 创建定时器_SpringBoot创建定时任务
之前总结过spring+quartz实现定时任务的整合http://www.cnblogs.com/gdpuzxs/p/6663725.html,而springboot创建定时任务则是相当简单. (1 ...
最新文章
- 如何部署php论坛系统,Discuz论坛系统搭建
- 删除作业计划出错(DELETE语句与 REFERENCE约束FK_subplan_job_id冲突。)
- Linux的pcel问题-bash: pecl: command not found
- 信用评分系统运行原理上篇
- [转]携程大数据实践:高并发应用架构及推荐系统案例
- 基于JAVA+SpringMVC+Mybatis+MYSQL的记账管理系统
- 从0开始的Python学习006流程控制
- linux 卡在grub_浅析 GRUB 如何加载 Linux kernel
- 产品读书《一页纸项目管理》
- 【深度学习】模型平均误差分析
- html表格上方的标题怎么相对表格居中
- java string转elements_Java异常堆栈信息转String
- java井字游戏_java井字棋源代码(双人对战版)
- 按键精灵——电脑永不熄屏
- 微信小程序“奶茶屋”的设计与实现
- 关于64位UBUNTU硬盘安装方式详解,和提示找不到vmlinuz的分析
- 【DIRECTX状态详解】
- MFC控件使用说明书
- 《精彩人生的一分钟小习惯》读后感
- 温室大棚实时监测、控制一体化解决方案
热门文章
- react-native 类似购物车动画
- 群晖918 docker命令行方式安装jellyfin并开启GPU硬解的方法
- 虚拟机搭建csgo服务器,csgo虚拟机设置以及游戏中文语言的设置
- intellij idea 激活码 activate code 绝对有效,简单易操作
- PTA 7-9 买复印纸
- 华为无线设备配置智能漫游
- [SDU软件工程实践]Blog5-从CommandProcessorFactory.get开始
- numpy中的cumsum函数
- 【搜索排序】召回综述Semantic Models for the First-Stage Retrieval: A Comprehensive Review
- Python123.io---十二星座