Laravel Forge Beanstalk Queue Stuck

时间:2016-07-14 20:00:06

标签: laravel beanstalkd laravel-forge

我使用Laravel Forge创建了一个Beanstalk队列,其中包含以下设置:

90 seconds max per job
10 rest seconds when empty
3 maximum tries
production environment

我在我的Laravel 5.2应用程序中运行了一个未正确处理的作业(未为客户创建付款配置文件)。但是,该作业从未添加到我的数据库中的failed_jobs表中。然后,我跑了几个工作岗位,看看可能发生了什么,这些工作也没有运行。似乎Beanstalk一直试图处理第一份工作而无法克服它转移到下一份工作。我的数据库中的failed_jobs表中仍然没有作业。

我检查了Forge的队列,它说队列仍在运行。所以我登录telnet并检查了Beanstalk队列。我做了一个peek-ready并且看到了第一份没有处理过的工作。但由于3次最大尝试次数设置,它没有处理或失败。它被卡住了。

在此之后,我想我会尝试在Forge中重启我的Beanstalk队列。队列重新启动后,所有已卡住的作业都会成功处理。

我很高兴我能够缓解这个瓶颈,但我很担心,因为我不希望在我的应用程序发生这种情况时发生这种情况。这里可能发生了什么?我该怎么做才能阻止它,或者我如何设置某种警报让我知道队列被卡住?

编辑:

我刚看了/etc/supervisor/conf.d中队列的设置。一切看起来都很正常,对吧?

[program:worker-49340]
command=php /home/forge/mydomain.com/current/artisan queue:listen beanstalkd --timeout=90 --sleep=10 --quiet --tries=3 --queue="default"

autostart=true
autorestart=true
user=forge
redirect_stderr=true
stdout_logfile=/home/forge/.forge/worker-49340.log

我还检查了/home/forge/.forge/worker-49340.log以查看它是否有任何信息,但它是空的。

即使我提供完全相同的输入导致队列卡在第一位,我也无法重现相同的情况。

0 个答案:

没有答案