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 又管理着我们定义的定时任务。至此,我们的定时任务便可以正常工作了。
转载于:https://my.oschina/zobeen/blog/2250160
更多推荐
【Laravel】Laravel 定时任务 Schedule
发布评论