Laravel 5.8.33
我运行了两个时间表, 一个是每5分钟一次, 一个是每月一次. 五分钟一次的计划使用everyFiveMinutes()可以完美运行. 但是每月一次的计划表monthly()从来没有运行过. 我还尝试了monthlyOn(1, '00:15'),但问题仍然存在。
如果我把monthly()换成everyFiveMinutes(),它就没有问题了。
日志文件中没有任何错误,只是无法运行。有人遇到过这个问题吗?有其他的请求可以替代monthly()吗?
$logfilename = 'cron_'. now()->format('Y_m_d') . '.txt';
//Push Notification check - RUNS EVERY FIVE MINUTES
$schedule->exec('env -i /usr/local/bin/php72 -f /www/xxxx-xxxx.com/artisan command:pushmessages')->everyFiveMinutes()->appendOutputTo(public_path().'/logs/'.$logfilename);
//End of month stats archive - NEVER RUNS
$schedule->exec('env -i /usr/local/bin/php72 -f /www/xxxx-xxxx.com/artisan command:archivestats')->monthly()->appendOutputTo(public_path().'/logs/'.$logfilename);
我知道这是迟到的答案,但这可能是有帮助的。它很奇怪,因为语法是正确的,我可以想到只有1个原因,这是命令本身,你可以分享 archivestats
命令代码?
下面是一些步骤。
$schedule->exec('env -i usrlocalbinphp72 -f wwwxxxx-xxxx.comartisan command:pushmessages')->monthly()->appendOutputTo(public_path().'logs'.$logfilename);
如果能成功,那么问题肯定出在 archivestats
命令。
如果你能分享以上步骤的结果,将有助于检测出问题所在。
如果你的第一条命令运行时间超过一分钟,那么你的第二条命令可能永远不会看到00:00才能运行月度任务。
试着改变工作的顺序,使月度任务有机会在午夜运行。