Laravel cronschedule monthly()没有运行

问题描述 投票:0回答:1

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);
laravel cron schedule
1个回答
0
投票

我知道这是迟到的答案,但这可能是有帮助的。它很奇怪,因为语法是正确的,我可以想到只有1个原因,这是命令本身,你可以分享 archivestats 命令代码?

下面是一些步骤。

  1. 运行这个命令。

$schedule->exec('env -i usrlocalbinphp72 -f wwwxxxx-xxxx.comartisan command:pushmessages')->monthly()->appendOutputTo(public_path().'logs'.$logfilename);

如果能成功,那么问题肯定出在 archivestats 命令。

  1. 创建一个cron任务(从 人机界面 或从终端,例如,但不是从laravel),将运行在服务器上每月...检查这个 联系 而这 联系 以及。

如果你能分享以上步骤的结果,将有助于检测出问题所在。


0
投票

如果你的第一条命令运行时间超过一分钟,那么你的第二条命令可能永远不会看到00:00才能运行月度任务。

试着改变工作的顺序,使月度任务有机会在午夜运行。

© www.soinside.com 2019 - 2024. All rights reserved.