thinkphp5.1/thinkphp5.0/thinkcmf/thinkcmf5.0/thinkcmf5.1 创建定时任务 -- 计划任务
1.在application目录下创建crontab模块(统一存放定时任务)
2.在command目录下创建Task.php 代码如下:
<?php namespace app\crontab\command; use think\console\Command; use think\console\Input; use think\console\input\Argument; use think\console\input\Option; use think\console\Output; use think\Db; class Task extends Command { protected function configure() { $this->setName('task') ->setDescription('定时计划:每天生成一个日期文件'); } protected function execute(Input $input, Output $output) { file_put_contents(time().'.txt', '当前日期为:'.date('Y-m-d')); } }
3.在application的command.php 文件中添加
return [ 'app\crontab\command\Task', ];
4.我这里用的linux 需要设置 crontab 在linux下 crontab -e 添加定时执行内容
0 0 * * * /usr/bin/php /home/www/www.test.com/think task
我这里设置每日凌晨的时候创建 用于统计
php 的安装目录查看命令 whereis php
--------------------------------------------------------------------自己项目 thinkcmf5.1中---------------------------------------------------------------------------------
Task.php
<?php /** * Created by : PhpStorm * User: xxxx * Date: 2020/7/30 * Time: 11:56 */ namespace app\crontab\command; use think\console\Command; use think\console\Input; use think\console\Output; class Task extends Command { protected function configure() { $this->setName('task') ->setDescription('定时计划:每天生成一个日期文件'); } protected function execute(Input $input, Output $output) { fputs(fopen('计划任务.txt','a+'),'当前日期为:'.date('Y-m-d H:i:s').PHP_EOL); // echo } }
宝塔中命令:
cd /www/wwwroot/xxx.xx.xx/hlb_wx/hlb/ && php think task
---------------------------------------------------------------------------------------------------------------------------------------
讲解一下,这个文件是集成Think底层的Command类的,configure函数是在命令行中用list命令列出所有任务的时候回显示的出的提示,execute函数是说要执行的命令,在这里可以直接调用其他函数,完成例如统计等任务工作,然后用output输出到命令行。
转载:https://blog.csdn.net/xinzi11243094/article/details/80251302