Laravel Horizo​​n worker 不断无声地崩溃

问题描述

我们正在运行 Laravel 7 和 Horizon 4.3.5。 Horizo​​n 与主管一起运行。

我们配置了 10 个不同的队列,但是负责一个特定队列的工作人员不断地在没有任何输出的情况下死亡。重新启动 Horizo​​n 后,我可以通过 topps 命令看到这些 worker 启动并运行了几秒钟。然后他们就走了。

我检查了主管的 stdout_logfile:没有任何可疑之处。我可以看到与此队列相关的作业正在成功处理。每个工作程序在崩溃前恰好处理 2 个作业。

我检查了主管的 stderr_logfile,但它是空的。

Laravel 日志和 Failed_jobs 表都是空的。

我什至检查了 syslog,但没有任何相关内容

其他队列完全没有问题。只有这个特定的队列不断堆积:应用程序将作业推送到队列中,但在我重新启动 Horizo​​n 之前从未处理过。

磁盘上有大量可用空间,可用 RAM,cpu 使用率低。

工人命令:/usr/bin/PHP7.4 artisan horizon:work redis --delay=0 --memory=128 --queue=main --sleep=3 --timeout=1800 --tries=1 --supervisor=PHP01-Mexm:business

解决方法

结果是内存不足问题。我们在此队列中有一项作业导致崩溃。

仍然不知道为什么日志是空的。可能没有足够的内存来记录任何内容。