首页 > 走进后端

Yii2 定时任务的创建

时间:2016-10-22|浏览次数:2015次

按照以下步骤进行:

  1. 在Yii项目根目录找到并打开“console/controllers/”文件夹。

  2. 新建“TimingController”并继承“yii\console\Controller”。

  3. 创建一个actionTest。
    <?php
    namespace console\controllers;
    use yii\console\Controller;
    
    class TimingController extends Controller
    {
        public function actionTest()
        {
            file_put_contents('/var/www/mySite/uploads/'.date('His',time()).'.txt',time()); // 要保证uploads文件的可写权限
        }
    }
  4. 打开linux命令行,输入命令“crontab -e;”,回车后会打开vim编辑器(这个编辑器是命令行中编辑)。

  5. 输入 “* * * * * php /var/www/BeckSports/yii timing/test”(不用分号结尾)。

  6. 保存退出vim编辑器(具体看编辑器操作)。

  7. 输入命令“sudo service cron restart”重启cron服务。

等一分钟后就可在项目uploads文件下看到创建的文件了。


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

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

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


示例:

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