Laravel定时任务调度例子——统计每周新增的用户数量
一、创建 Command 文件
输入命令
php artisan make:command CountUser
即在(app/Console/Commands 下创建了 CountUser.php 文件)-
完善 Command 信息
签名
protected $signature = 'CountUser';
描述
protected $description = '统计每周新增的用户数';
-
在 handle() 方法中实现功能
public function handle() { $time = date("Y-m-d H:i:s",time()); $front = date("Y-m-d H:i:s",strtotime("-7 day")); $count = User::whereBetween('created_at',[$front,$time])->count(); //更多逻辑省略 }
二、在 Kernel.php 中注册命令并填写执行计划
-
注册命令
protected $commands = [ \App\Console\Commands\CountUser::class, ];
-
填写执行计划(每周一凌晨执行统计)
protected function schedule(Schedule $schedule) { $schedule->command('CountUser')->weekly()->mondays()->at("00:00:00"); }
三、新建 cron.txt 文件
php和artisan最好写绝对路径,php可以用 which php
命令查看位置
* * * * * php /var/www/html/artisan schedule:run >> /dev/null 2>&1
四、用命令开启任务
crontab cron.txt
开始定时任务:
crontab -l
需要结束任务的命令:
crontab -r