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保存退出
截止目前我们的计划任务就设置完毕了
使用场景
积分一个月不用自动清空
自动化脚本(数据库源码备份)
赞 (0)