我有以下功能:
protected function schedule(Schedule $schedule)
{
$schedule->command('email:users')->everyMinute();
}
字符串
当我运行命令
artisan schedule:run
型
它发送一封电子邮件,但当我将以下命令作为cron作业添加到cpanel时,它不发送任何电子邮件。Cpanel假设给我发电子邮件通知时,cron作业运行,但我还没有收到一封电子邮件。
php /home/rain/artisan schedule:run 1>> /dev/null 2>&1
我哪里做错了?
另外,当我运行artisan schedule:run
命令时,它只运行一次。我很好奇为什么我必须添加->everyMinute();
,如果它不打算每分钟运行?如果我想每周发送一次,我可以设置cron作业。如果cron job每周发送一次,为什么我必须在函数中添加->weekly();
?
5条答案
按热度按时间pinkon5k1#
它为我工作:
首先尝试您的命令,无需等待:
字符串
然后,一旦你检查它是否工作,添加这个:
型
rqdpfwrv2#
Laravel调度器假设你每分钟都有一个cronjob。调度程序仅在您希望有多个任务时才有用。
通常情况下,您在cPanel中配置了一个cronjob,您可以将调度程序设置为
everyWeek()
,并将另一个任务设置为everyDay()
,而无需在cPanel中添加或更改cronjob。Laravel会自动知道任务是否已经运行。
https://laravel.com/docs/5.4/scheduling
这个Cron每分钟都会调用Laravel命令调度器。当schedule:run命令被执行时,Laravel将评估你的计划任务并运行到期的任务。
gstyhher3#
这对我很有效
字符串
只要确保您使用的PHP的确切版本来执行时间表
例如,如果你的php v是7.3,那么代码将是
型
lzfw57am4#
这对我很有效
/usr/local/bin/php /home2/maildoll/demo.maildoll.com/artisan queue:work --stop-when-empty >> /dev/null
x1c 0d1x的数据
kmpatx3s5#
试试这个。我们必须在路径和命令之间放置“&&”。这对我很有效
字符串