Laravel CPanel Cron Job命令未运行

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

我在Apache / CPanel共享服务器上为Laravel应用程序实现Cron Job时遇到问题。我有一个任务命令,无论何时从命令行运行它,它都可以正常运行;每天调用时,它也可以正常运行,但是它没有按“一天一次”的时间表运行。

仅当Laravel命令也被称为everyMinute()时,Cron Job波纹管才能在每分钟被调用时完美工作,如下所示:

定时通话

php -d register_argc_argv=On /home/path/domain.com/artisan schedule:run > /dev/null 2>&1

服务器时间表* * * * *

Laravel命令:

$schedule->command('alert:dailly')->everyMinute();

问题是,我真正想要执行的命令每天执行一次,但这行不通。相同的命令每分钟运行一次,但每天只有一次没有被调用,如下所示:

定时通话

php -d register_argc_argv=On /home/path/domain.com/artisan schedule:run > /dev/null 2>&1

服务器时间表0 0 * * *

Laravel命令:

$schedule->command('alert:dailly')->cron('0 0 * * * *');

$schedule->command('alert:dailly')->daily();

有什么问题吗?

谢谢!

laravel apache cron cpanel laravel-scheduler
1个回答
0
投票

我有一个类似的问题,但从未找到真正的原因。我通过在特定时间和后台强制执行每日程序来解决此问题。您的代码将是(假设您想在凌晨1:30运行它):

$schedule->command('alert:dailly')->dailyAt('01:30')->runInBackground();

[我还注意到,我不得不每半刻钟运行一次命令。所以(小时):00,(小时):15,(小时):30和(小时):45算出来,(小时):03例如不是。

这可能是托管问题(在我的情况下为A2hosting.com,已共享),但是知识库并不能使我变得更明智。值得尝试。一次运行一次即可使用Linux命令top -ac监视该过程,以便查看该命令是否实际执行。

如果这对您有用,请不要问我为什么。我必须通过反复试验为自己找到这种解决方案。

[我想指出,如in this PHP 'bug' report所述,您的cron调用永远不会到达register_argc_argv=On参数。尝试不带任何参数地运行它。

php /home/path/domain.com/artisan schedule:run > /dev/null 2>&1

除非您的托管服务提出不同建议。

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