Laravel 5任务调度程序(用于邮件队列)不起作用

时间:2016-05-06 15:59:29

标签: php laravel laravel-5

我正在尝试让Laravel自动处理电子邮件队列,但无法使任务调度程序正常工作。问题是:

我已经在数据库表和Kernel.php中成功找到了工作:

$schedule->command('queue:work')->everyMinute();
远程服务器上的

我在项目文件夹下运行此命令:

* * * * * php artisan schedule:run >> /dev/null 2>&1

但调度程序仍然拒绝工作,因为工作仍然在表中。如果我手动运行

artisan queue:work

然后发送电子邮件。

我在这里弄错了什么?非常感谢!

1 个答案:

答案 0 :(得分:1)

首先,我建议你不要使用laravel的命令调度程序。

使用laravel的任务调度程序的优点和缺点:

<强>优点

您的cron任务嵌入到您的代码中。因此,如果您更改服务器,则不需要记住您拥有的所有cron任务。

<强>缺点

让我们说你还有其他几个cron任务。任务T1每分钟运行一次,但任务T2每天运行,而任务T3每周二运行。现在只需检查一下,您将运行一个守护程序,它将检查您的每一分钟是否在队列计划中有任何任务。您的队列也应该尊重每个工作及其各自的时间。

相反,您可以为每项任务创建单独的命令。并为他们运行cron工作。

但即使你想做你已经做过的事情或者想知道为什么你的cron任务没有运行,那么这就是你忘记了&#34;在你的项目目录中运行artisan命令&#34;。

* * * * * cd path_to_your_laravel_project & php artisan schedule:run

相关问题