Laravel 队列永远运行

Posted

技术标签:

【中文标题】Laravel 队列永远运行【英文标题】:Laravel queues run forever 【发布时间】:2015-02-12 06:58:51 【问题描述】:

我有一个支持某种邮件通知的页面。当用户插入一些数据时,我想将邮件发送给另一个。我知道,Mail::send() 运行良好,但速度很慢。所以我想把这封邮件推送到队列中。我使用 Iron.io 作为提供者。在我关闭控制台之前一切正常。

那么在我关闭 Win 和 Linux 上的控制台后,是否可以永远运行 php artisan queue:listen

【问题讨论】:

【参考方案1】:

你可以使用nohup在linux后台运行每个进程

nohup php artisan queue:listen

即使您关闭终端,这也将保持进程运行,nohup 将强制忽略挂断信号。

nohup 创建一个日志文件。如果你想抑制这个,你可以添加

 >/dev/null 2>&1 &

在你的命令之后

【讨论】:

谢谢你,这对你有很大帮助,还有这个答案***.com/questions/24646320/… 考虑用supervisord 之类的东西来监控它。 不客气!您可以忽略 nohup 告诉您的内容并关闭所有内容。如果进程仍在运行,您可以构建某种检查,尽管它非常可靠 我没有cmd的root用户,所以当我设置nohup命令然后关闭终端时,队列停止了。命令或进程未按预期在后台运行。我的问题是,使用非 root 用户可能是这里的问题? @HimanshuUpadhyay 随意提出一个新问题,并确保包含有关您正在做什么的所有信息,以便人们可以帮助您

以上是关于Laravel 队列永远运行的主要内容,如果未能解决你的问题,请参考以下文章

自动运行 Laravel 队列 [重复]

使用 Supervisor 运行多个 Laravel 队列工作者

Laravel 队列不作为后台运行

Laravel - 在运行前获取队列数据

Laravel 队列和 Azure WebJob

laravel 队列守护进程邮件因 SSL 错误而停止运行