yii2 commands模式以及配置crontab定时任务的方法

yii2 commands模式以及配置crontab定时任务的方法

一 ,检测环境:


首先我们切换到项目根目录,yii2正常安装的话有一个commands文件夹,里面有一个示例文件HelloController.php  


<?php
namespace app\commands;
use yii\console\Controller;
class HelloController extends Controller
{
 public function actionIndex($message = 'hello world')
 {
  echo $message . "\n";
 }
}


切到项目根目录,命令行输出  php yii hello,输出hello world 说明环境正常


二,书写代码:


可以在commands文件夹新建控制器文件,继承yii\console\Controller;定义类方法,actionIndex方法一般为默认路由,


调试时在项目根目录输入php yii 加上控制器名字(小写)/路由(index的话可省略)


三,linux定时任务crontab.


1关于crontab:


在linux环境下,crontab -l显示定时任务,crontab -e编辑定时任务


2基本语法


基本格式 :


*****command
分 时 日 月 周 命令


第1列表示分钟1~59 每分钟用*或者 */1表示
 第2列表示小时1~23(0表示0点)
 第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
 第6列要运行的命令


3用法示例


30 21 * * * /usr/local/etc/rc.d/lighttpd restart


#上面的例子表示每晚的21:30重启apache。


 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
 #上面的例子表示每月1、10、22日的4 : 45重启apache。


10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
 #上面的例子表示每周六、周日的1 : 10重启apache。


0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
 #上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。


0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
 #上面的例子表示每星期六的11 : 00 pm重启apache。


0 */1 * * * /usr/local/etc/rc.d/lighttpd restart
 #每一小时重启apache


四,linux定时任务crontab执行commands下控制器php文件内容


按第三步所写,后面加上 php yii + 项目根路径 + 路由(控制器名/方法名)即可


以上这篇yii2 commands模式以及配置crontab定时任务的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持ASPKU源码库。


本篇文章来源于源码库(www.aspku.com),转载请注明出处 原文链接:http://www.aspku.com/kaifa/php/271478.html

本篇文章来源于源码库(www.aspku.com),转载请注明出处 原文链接:http://www.aspku.com/kaifa/php/271478.html
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`console.php`是Yii框架中的一个命令行脚本,用于执行各种命令和任务,如数据库迁移、生成代码等。在Yii2中,`console.php`被用于运行控制台应用程序,这些应用程序通常用于处理后台任务、定时任务、计划任务等。 在Yii2中,您可以使用`yii`命令来运行`console.php`脚本,如下所示: ``` php /path/to/your/yii-application/yii <command> ``` 其中,`/path/to/your/yii-application/`是您的Yii应用程序的路径,`<command>`是要执行的命令。例如,要运行数据库迁移命令,可以使用以下命令: ``` php /path/to/your/yii-application/yii migrate ``` 除了运行命令,您还可以使用Yii2的Console应用程序来设置定时任务定时任务是指在指定的时间间隔内自动执行的任务。要创建定时任务,您需要执行以下步骤: 1. 创建一个继承自`yii\console\Controller`类的控制器,该控制器将处理定时任务的逻辑。 2. 在`console/config/main.php`配置文件中配置一个名为`cron`的组件,该组件将设置定时任务的时间表。 3. 在服务器上设置一个计划任务(cron job),以在指定的时间间隔内运行Yii2的console应用程序。 下面是一个简单的示例,演示如何使用Yii2的Console应用程序设置定时任务: 1. 创建一个名为`TestController`的控制器,用于处理定时任务的逻辑: ```php <?php namespace app\commands; use yii\console\Controller; class TestController extends Controller { public function actionIndex() { echo "This is a test command\n"; } } ``` 2. 在`console/config/main.php`配置文件中配置一个名为`cron`的组件,该组件将设置定时任务的时间表: ```php <?php return [ // ... 'components' => [ // ... 'cron' => [ 'class' => 'yii\console\CronController', 'schedule' => [ '* * * * *' => ['test/index'], // 每分钟执行一次TestController的index动作 ], ], ], ]; ``` 在上面的配置中,我们创建了一个名为`cron`的组件,它是`yii\console\CronController`的一个实例。`'schedule'`属性包含一个时间表数组,该数组指定了要运行的控制器操作和它们的执行时间。 在上面的示例中,我们设置了一个时间表,每分钟执行一次`TestController`控制器的`index`操作。 3. 在服务器上设置一个计划任务(cron job),以在指定的时间间隔内运行Yii2的console应用程序。 在Linux环境中,您可以使用`crontab`命令来设置计划任务。要设置一个计划任务,您需要打开终端并输入以下命令: ``` crontab -e ``` 这将打开一个文本编辑器,在其中输入以下内容: ``` * * * * * /usr/bin/php /path/to/your/yii-application/yii cron/run >> /dev/null 2>&1 ``` 其中,`/usr/bin/php`是PHP解释器的路径,`/path/to/your/yii-application/`是您的Yii应用程序的路径。`cron/run`是您要运行的控制器操作。`>> /dev/null 2>&1`将输出重定向到`/dev/null`,以避免将输出写入日志文件。 这将在每分钟运行一次Yii2的Console应用程序,并执行指定的控制器操作。 希望这个示例可以帮助您理解如何使用Yii2的Console应用程序设置定时任务

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值