简介
定时任务是十分常见的需求,常需要数据统计、垃圾信息清理等场景中。
基本用法
生成命令1
php artisan make:command AreYouOK
编辑命令
在App\Console\Commands\AreYouOK
文件中1
2
3
4
5
6
7
8
9
10
11
12
13protected $signature = 'BeautyBlog:areyouok'; // 命令名称
protected $description = '小米'; // 名称描述
public function __construct()
{
parent::__construct();
}
public function handle()
{ // 功能代码写到这里
$this->info('Are you OK !!!');
}
注册命令
打开 App\Console\Kernel
,注册1
2
3protected $commands = [
\App\Console\Commands\AreYouOK::class,
];
编写调用逻辑:1
2
3
4
5
6protected function schedule(Schedule $schedule)
{
$schedule->command('BeautyBlog:areyouok')
->timezone('Asia/Shanghai')
->everyMinute();
}
上面的逻辑是每分钟调用一次,可以使用php artisan list
查看命令。
可以执行此命令:1
php artisan BeautyBlog:areyouok
定时任务
任务定时,需要把项目注册到系统的 cron 里,cron是一个linux下的定时执行工具,
运行下面命令:1
crontab -e
然后会打开一个处于编辑状态的文件,然后在后面填入1
* * * * * php 2>&1 vagrant BeautyBlog/artisan schedule:run >> null
系统的 Cron 已经设定好了,现在 Cron 软件将会每分钟调用一次 Laravel 命令调度器,
当 schedule:run 命令执行时, Laravel 会评估你的计划任务并运行预定任务。1
php artisan schedule:run
注意这里是 Cron 每分钟去检测执行 Cron文件
查看定时任务1
crontab -l
Crontab 文件格式
| | | | |* |
| —— | —— |—— |—— |—— |
| minute | hour | day of month | month | day of week |
| 0 ~ 59 | 0 ~ 23 | 1 ~ 31 | 1 ~ 12 | 0 ~ 6 |