Yii2 定时任务创建(Console 任务)

Yii2有强大的定时任务执行功能(Console),在项目目录下的console目录,可在该目录新建执行任务的控制器

我们先建一个TestController.php的控制器

<?php
namespace console\controllers;
 
use yii\console\Controller;
 
class TestController extends Controller
{
    public function actionTest()
    {
        echo "test\n";
    }
}

  

在yii根目录下,命令行执行

yii test/test

  

如果是class AaaBbbController function ActionAaaBbb

yii aaa-bbb/aaa-bbb

  

linux下,运行crontab -e

crontab操作 参考:https://www.cnblogs.com/ftl1012/p/crontab.html

crontab -e

crontab -l

 

安装crontab:

yum install crontabs

  

crontab服务操作说明:

/sbin/service crond start //启动服务
 
/sbin/service crond stop //关闭服务
 
/sbin/service crond restart //重启服务
 
/sbin/service crond reload //重新载入配置

  

查看crontab服务状态:

service crond status

  

手动启动crontab服务:

service crond status

  

查看crontab服务是否已设置为开机启动,执行命令:

方法一: 界面启动      ntsysv
方法二: 加入开机自动启动:   chkconfig –level 35 crond on

  

crontab -l查看定时任务列表

编辑定时任务

crontab –e

  

==》vim /var/spool/cron/root

  

每隔2分钟输出时间到文件

*/2 * * * * echo `date` >> $HOME>test.txt

  

crontab -r 删除定时任务

==> 从/var/spool/cron目录中删除用户的crontab文件
==> 如果不指定用户,则默认删除当前用户的crontab文件
crontab –i  在删除用户的crontab文件时给确认提示

  

备份crontab文件

crontab -l > $HOME/mycron

  

恢复丢失的crontab文件

如果不小心误删了crontab文件,假设你在自己的$ H O M E目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/<username>,其中<username>是用户名。如果由于权限问题无法完成拷贝,可以用:
crontab <filename> 其中,<filename>是你在$ H O M E目录中副本的文件名。
有些crontab的变体有些怪异,所以在使用crontab命令时要格外小心。如果遗漏了任何选项,crontab可能会打开一个空文件,或者看起来像是个空文件。这时敲delete键退出,不要按<Ctrl-D>,否则你将丢失crontab文件。

  

每小时执行/etc/cron.hourly目录内的脚本

0 * * * * root run-parts /etc/cron.hourly

  

上面的例子表示每晚的21:30执行上面的定时程序

 

下面是定时任务设置的一些基本介绍

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

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

crontab文件的一些例子:

 

posted @ 2017-11-21 21:05  程序生(Codey)  阅读(2800)  评论(0编辑  收藏  举报