thinkphp5.0 创建自定义命令行

  • 在模块目录下面创建一个command目录文件夹,在此文件夹下创建一个php文件,这里我创建的是Crond.php

  • 在Crond.php中编写代码

namespace app\index\command;use app\index\model\Robot;use think\console\Command;use think\console\Input;use think\console\Output;class Crond extends Command{
    protected function configure()
    {
        $this->setName('Cron')->setDescription('计划任务');
    }    protected function execute(Input $input, Output $output)
    {
        $this->doCron();
        $output->writeln("已经执行计划任务");//此代码主要是输出到命令行    }    public function doCron()
    {
        //在这个里做自己的计划任务工作等等,建议自己创建一个model业务类专门管理你的业务逻辑,最好通过静态方法调用
        Robot::getToken();
    }}12345678910111213141516171819202122232425
  • 在application目录下的command.php文件中编写代码指定到我们刚才创建的Crond.php

return ['app\index\command\crond'];1
  • 打开命令终端 cd我们的项目根目录下

╰$ cd develop/www/thinkRedis1

执行 php think Cron 会输出以下内容代表成功了

AppledeiMac-2:thinkphp apple$ php think Cron
添加ok已经执行计划任务
You have new mail in /var/mail/apple
AppledeiMac-2:thinkphp apple$1234

目前我们计划任务代码已经别写完毕了,剩下的工作我们需要通过系统的计划任务调用这些代码,这样就实现了计划任务调用
我们首先在项目根目录中创建一个.sh脚本文件,文件内容设置如下

#!/bin/shPATH=/usr/local/php/bin:/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bincd /Applications/MAMP/htdocs/thinkphp
php think Cron1234
  • 到目前为止脚本文件已经编写完毕,剩下我们开始编写crontab命令来执行这个脚本文件,在这里我们测试1分钟执行一次

1. crontab -e
2.插入以下命令 /1    * bash /Applications/MAMP/htdocs/thinkphp/crond.sh
3 :wq保存退出

截止目前我们的计划任务就设置完毕了

  • 使用场景

  1. 积分一个月不用自动清空

  2. 自动化脚本(数据库源码备份)

(0)

相关推荐