在我们项目开发中,需要使用定时任务来完成批处理业务,下面通过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;}
}

其中 param1param2就是参数,执行脚步命令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;}
}

其中 p1p2就是参数的别名,执行脚步命令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 创建定时任务相关推荐

  1. yii2 设置定时任务

    yii2设置定时任务 通过console调用 在 console\controllers 创建 Controller 控制器继承 yii\console\Controller; 例: <?php ...

  2. mysql事件调度定时任务_详解MySQL用事件调度器Event Scheduler创建定时任务

    前言 事件调度器相当于操作系统中的定时任务(如:Linux中的cron.Window中的计划任务),但MySql的事件调度器可以精确到秒,对于一些实时性要求较高的数据处理非常有用. 1. 创建/修改事 ...

  3. java获取mysql数据定时执行_详解SpringBoot 创建定时任务(配合数据库动态执行)...

    序言:创建定时任务非常简单,主要有两种创建方式:一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer). 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库 ...

  4. python3创建定时任务

    python3创建定时任务 文章目录: 一.time模块实现定时任务 1. 睡眠机制 2.取余数的方式 二.datetime模块实现睡眠机制 三.用threading 线程模块实现定制任务 四.用sc ...

  5. 一篇文章搞定,SpringBoot 创建定时任务

    作者:yizhiwazi 链接:https://www.jianshu.com/p/d160f2536de7 序言:创建定时任务非常简单,主要有两种创建方式: 一.基于注解(@Scheduled) 二 ...

  6. oracle如何创建一个定时任务,怎么创建定时任务

    如何创建定时任务? 本帖最后由 minl 于 2013-11-27 14:16:37 编辑 使用dbms_scheduler这个包,但是创建完后似乎不执行. begin DBMS_SCHEDULER. ...

  7. 使用plsql创建定时任务并执行

    2019独角兽企业重金招聘Python工程师标准>>> 前言~ 我们知道plsql工具的使用非常强大,使用它来创建存储过程以及定时任务都非常简单.上篇文章讲解到使用plsql创建存储 ...

  8. SQL2008如何创建定时任务作业

    SQL2008 创建定时任务作业 1.打开[SQL Server Management Studio],在[对象资源管理器]列表中选择[SQL Server 代理]: --2.鼠标右击[SQL Ser ...

  9. java 创建定时器_SpringBoot创建定时任务

    之前总结过spring+quartz实现定时任务的整合http://www.cnblogs.com/gdpuzxs/p/6663725.html,而springboot创建定时任务则是相当简单. (1 ...

最新文章

  1. 如何部署php论坛系统,Discuz论坛系统搭建
  2. 删除作业计划出错(DELETE语句与 REFERENCE约束FK_subplan_job_id冲突。)
  3. Linux的pcel问题-bash: pecl: command not found
  4. 信用评分系统运行原理上篇
  5. [转]携程大数据实践:高并发应用架构及推荐系统案例
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的记账管理系统
  7. 从0开始的Python学习006流程控制
  8. linux 卡在grub_浅析 GRUB 如何加载 Linux kernel
  9. 产品读书《一页纸项目管理》
  10. 【深度学习】模型平均误差分析
  11. html表格上方的标题怎么相对表格居中
  12. java string转elements_Java异常堆栈信息转String
  13. java井字游戏_java井字棋源代码(双人对战版)
  14. 按键精灵——电脑永不熄屏
  15. 微信小程序“奶茶屋”的设计与实现
  16. 关于64位UBUNTU硬盘安装方式详解,和提示找不到vmlinuz的分析
  17. 【DIRECTX状态详解】
  18. MFC控件使用说明书
  19. 《精彩人生的一分钟小习惯》读后感
  20. 温室大棚实时监测、控制一体化解决方案

热门文章

  1. react-native 类似购物车动画
  2. 群晖918 docker命令行方式安装jellyfin并开启GPU硬解的方法
  3. 虚拟机搭建csgo服务器,csgo虚拟机设置以及游戏中文语言的设置
  4. intellij idea 激活码 activate code 绝对有效,简单易操作
  5. PTA 7-9 买复印纸
  6. 华为无线设备配置智能漫游
  7. [SDU软件工程实践]Blog5-从CommandProcessorFactory.get开始
  8. numpy中的cumsum函数
  9. 【搜索排序】召回综述Semantic Models for the First-Stage Retrieval: A Comprehensive Review
  10. Python123.io---十二星座