Joh*_*nny 6 cron schedule cpanel laravel laravel-artisan
我有以下功能:
protected function schedule(Schedule $schedule)
{
$schedule->command('email:users')->everyMinute();
}
Run Code Online (Sandbox Code Playgroud)
当我运行命令时
artisan schedule:run
Run Code Online (Sandbox Code Playgroud)
它会发送一封电子邮件,但是当我将以下命令作为 cron 作业添加到 cpanel 时,它不会发送任何电子邮件。Cpanel 假设在运行 cron 作业时通过电子邮件向我发送通知,但我没有收到一封电子邮件。
php /home/rain/artisan schedule:run 1>> /dev/null 2>&1
我哪里做错了?
此外,当我运行命令时,artisan schedule:run它只运行一次。我很好奇,->everyMinute();如果不是每分钟都运行一次,为什么我必须添加?如果我想每周发送一次,我可以设置 cron 作业。->weekly();如果 cron 作业每周发送它,为什么我必须编写添加函数?
小智 11
它对我有用:
首先尝试您的命令,无需等待:
/usr/local/bin/php /home/hosting-username/laravel-folder/artisan schedule:run
Run Code Online (Sandbox Code Playgroud)
然后,检查它是否有效后,添加以下内容:
/usr/local/bin/php /home/hosting-username/laravel-folder/artisan schedule:run >> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
小智 8
Laravel 调度程序假设您每分钟都有一个 cronjob。仅当您想要执行多个任务时,调度程序才有用。
通常,您在 cPanel 中配置了一个 cronjob,并且可以将调度程序设置为everyWeek()并执行另一项任务,而无需everyDay()在 cPanel 中添加或更改 cronjobs。
Laravel 会自动知道任务是否已经运行。
https://laravel.com/docs/5.4/scheduling
这个 Cron 每分钟都会调用 Laravel 命令调度程序。当执行schedule:run命令时,Laravel将评估你的计划任务并运行到期的任务。
小智 5
这对我有用
/usr/local/bin/php /home/hosting-username/laravel-folder/artisan schedule:run >> /dev/null
Run Code Online (Sandbox Code Playgroud)
只需确保您使用确切版本的 php 来执行计划
例如,如果你的 php v 是 7.3 那么代码将是
/usr/local/bin/ea-php73 /home/hosting-username/laravel-folder/artisan schedule:run >> /dev/null
Run Code Online (Sandbox Code Playgroud)