gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 21:25:33 24 4
gpt4 key购买 nike

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

我已经在数据库表和 Kernel.php 中成功获得作业:

$schedule->command('queue:work')->everyMinute();

在远程服务器上,我在项目文件夹下运行了这个命令:

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

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

artisan queue:work

然后发送电子邮件。

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

最佳答案

首先我会建议你不要使用 laravel 的命令调度器。

使用 laravel 的任务调度器的优缺点:

优点

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

缺点

假设您还有其他几个 cron 任务。任务 T1 每分钟运行一次,但任务 T2 每天运行一次,而任务 T3 每周二运行一次。现在只需检查一下,您将运行一个守护进程,它将检查您的每一分钟是否在队列计划中有任何任务。此外,您的队列应尊重每项工作及其各自的时间安排。

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

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

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

关于php - Laravel 5 任务调度程序(用于邮件队列)不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37076759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com