admin管理员组

文章数量:1794759

【Laravel】Laravel 定时任务 Schedule

【Laravel】Laravel 定时任务 Schedule

1、简述

本文方法是利用Linux的crontab定时任务来协助实现Laravel调度

2、创建控制台命令 php artisan make:console TestTask

以上命令执行完,会生成文件app/Console/Commands/TestTask.php

3、修改 TestTask.php 文件

控制台命令名称

protected $signature = 'testTask';

控制台命令描述

protected $description = '测试定时任务';

控制台命令功能实现

/** * Execute the console command. * * @return mixed */ public function handle() { Log::info('这是定时任务,每分钟写一次'); } 4、修改app/Console/Kernel.php

注册控制台命令

protected $commands = [ Commands\\TestTask::class, // 测试定时任务 ]

将控制台命令添加到定时任务

protected function Schedule(Schedule $schedule) { $schedule->command('testTask')->everyMinute(); // 每分钟执行一次定时任务 } 5、添加 Linux 定时任务

手动执行自定义命令

php artisan testTask

添加 crontab 定时任务

执行命令:

sudo crontab -e

添加以下代码:

* * * * * php /var/www/invest/artisan schedule:run >> /dev/null 2>&1

重启 crontab 服务

service crond restart

命令说明

Linux 系统将会每分钟执行一次php artisan schedule:run命令,而 schedule 又管理着我们定义的定时任务。至此,我们的定时任务便可以正常工作了。

转载于:my.oschina/zobeen/blog/2250160

本文标签: laravelschedule