php - 为什么 queue:work 在 Laravel 5.7 的 1 次迭代后停止?
问题描述
运行命令后:
php工匠队列:工作
预期行为:队列工作者将继续运行,直到停止或失败。
实际行为:队列工作者在每个作业后停止,无论作业失败还是成功完成。
以上与 Laravel 5.2 一致 https://laravel.com/docs/5.2/queues#daemon-queue-worker
但是,由于我正在运行 Laravel 5.7,因此我期望 https://laravel.com/docs/5.7/queues#running-the-queue-worker中描述的行为
在 Laravel forge 中运行工作人员时,队列工作人员似乎在每次作业后都会重新启动。
我是否缺少任何可以解释这种行为的配置?
注意:当队列工作人员结束时,不会抛出任何异常,也不会记录任何内容。它只是重新启动。
解决方案
你是对的,php artisan queue:work
应该运行直到手动停止。唯一的例外是以下选项:
--once
只处理队列中的下一个作业--stop-when-empty
队列为空时停止
我的猜测是Laravel forge 使用主管每隔一段时间重新启动后台作业以防止内存泄漏和其他故障。有关 laravel 中主管的更多信息,请参阅文档。
您是否尝试在您的开发环境中运行它以查看它是否也在那里重新启动?
推荐阅读
- reactjs - 如何修复挂钩依赖数组?
- django - 将项目附加到 wagtail 中的流场
- python - Python Regex 问题将文件系统名称转换为指数
- c# - BadHttpRequestException:由于数据到达太慢,读取请求正文超时。请参阅 ASP.NET 核心 2.2 上的 MinRequestBodyDataRate
- c - 在 C 中使用 while 循环检查两个不同的用户名和密码组合
- google-play - 使用 Azure Pipelines 更新 Play 商店中的私有应用程序
- c - 简单的 C 程序无法编译 - 错误是“动态主可执行文件必须与架构 i386 的 libSystem.dylib 链接”
- sql - Postgresql 特殊序列,取决于之前的值
- visual-studio-code - 在 Visual Studio Code 中聚焦组时如何禁用调整大小?
- java - Aws Push 通知在某个时间后停止并且工作开始重新启动 tomcat