当前位置: 首页 > 后端技术 > PHP

Laravel任务调度

时间:2023-03-30 02:30:37 PHP

一、解决问题:取消服务器的多cron调用,使用一个cron完成所有laravel命令下的命令二、操作方法1、新建命令文件:这里新建两个定时任务,模拟多任务phpartisanmake:commandUpdateArticlephpartisanmake:commanddelArticle2.文件对应内容1)UpdateArticlecommand('UpdateArticle')->everyMinute()->appendOutputTo($logPath)->onOneServer()->withoutOverlapping('10');//修改文章demo$schedule->command('DelArticle')->everyFiveMinutes()->appendOutputTo($logPath)->onOneServer()->withoutOverlapping('10');}/***为应用程序注册命令。**@returnvoid*/protectedfunctioncommands(){$this->load(__DIR__.'/Commands');requirebase_path('routes/console.php');}}4.定时任务执行schedule:run方法1)window手动模拟D:\wwwroot\laraveldemo>phpartisanschedule:run2)服务器定时任务*****cd/path-to-your-project&&phpartisanschedule:run>>/dev/null2>&15,schedule:run执行过程中会发生什么1)提示Noscheduledcommandsarereadytorun。出现这种情况是由于添加了withoutOverlapping()造成的。删除/storage/farmework/chache文件夹下的缓存即可。如果缓存使用Redis等,需要删除其对应的缓存