过去,开发者需为每个调度任务单独配置Cron条目,操作繁琐且难以维护。任务调度脱离源码管理,必须通过SSH登录服务器手动添加,极易出错。Laravel命令调度器提供了一种简洁而直观的方式,在代码中定义所有调度任务,只需在服务器上设置一条Cron,即可自动运行所有计划任务,大幅提升开发效率与可维护性。
1、 启动Linux系统后,执行crontab -e命令,即可编辑当前用户的定时任务脚本。
2、 把下列内容加入脚本里。
3、 每天定时进入 Laravel 项目主目录,执行 PHP 命令运行 Artisan 调度任务,确保计划任务按时自动执行,无需手动干预,保持系统功能稳定运行。
4、 编辑完毕后,按 Ctrl + X,再按 Y,最后回车保存即可。
5、 可通过执行 crontab -l 命令查看当前用户的定时任务列表。
6、 你将看到crontab脚本任务已成功添加!
7、 接着修改 Laravel 项目中 app/Console/Kernel.php 文件,进入 schedule 方法,添加一个基础的定时执行任务,用于实现计划任务功能。
8、 添加了三个定时任务,前两个每分钟执行一次,第三个每五分钟执行一次。任务内容简单,均通过回调函数实现,每次执行时向日志文件写入记录,完成后保存并退出。
9、 接下来进行验证,先用tail命令实时监控日志文件内容。
10、 实时查看Laravel项目日志的命令:tail -f 项目根目录/storage/logs/laravel.log,可动态监控日志输出内容。
11、 一分钟后查看日志,发现报错提示找不到 everyMinutes() 方法。
12、 糟糕,调度任务的代码出错了!
13、 回到内核文件,修正错误,确保代码正确无误。
14、 建议采用每分钟执行一次的策略。
15、 修正后查看日志,稍等片刻,便会发现任务已顺利开始运行。
16、 Laravel 的任务调度功能十分强大,除了基本用法外,还有许多高级特性值得深入挖掘,建议你多尝试、多实践,进一步发挥其潜力,提升开发效率。
