本文基于tp5.1实现:tp5+服务器crontab
一、新建定时任务
- 在application下新建
crontab文件夹; - 在crontab文件夹下新建
command文件夹; - 在command文件夹中新建
Task.php控制器<?phpnamespace app\crontab\command;use app\index\model\User;use think\console\Command;use think\console\Input;use think\console\Output;class Task extends Command{protected function configure(){$this->setName('task')->setDescription('定时计划:每天0点通知用户');}/*** 任务实现功能:定时更新通知时间* @param Input $input* @param Output $output* @return int|null|void* @throws \Exception*/protected function execute(Input $input, Output $output){$userData = User::select();$jobData=[];foreach ($userData as $v) {$jobData[] = ['id' => $v['id'],'notify_time' => time()];}$model=new User();$model->saveAll($jobData);}}
二、配置任务
application/command.php中配置return ['app\crontab\command\Task', //定时通知用户];
三、linux服务器添加任务脚本
1、crontab -e //编辑新增
0 0 * * * /usr/bin/php /www/wwwroot/tp5demo.com/think task>>/www/wwwroot/tp5demo.com/runtime/20201127.log 2>&1
该脚本表示每天0点0分执行task任务:
/usr/bin/php 为服务器PHP目录所在;
/www/wwwroot/tp5demo.com/think 表示task任务所在的项目目录;>>/www/wwwroot/tp5demo.com/runtime/20201127.log 2>&1 记录任务执行记录
2、crontab -l //计划任务列表 可查看部署成功的任务
3、linux crontab 任务一般存放在/var/spool/cronw文件夹中
