我怎样才能弄清楚为什么Laravel Queue Worker正在运行?
问题描述:
由于数据库服务器崩溃,Laravel队列工作人员正在生成大量错误日志条目,反过来Laravel的日志在两个小时内就增加到了150GB,填满了整个硬盘驱动器,以致多个Web应用程序停止工作。我怎样才能弄清楚为什么Laravel Queue Worker正在运行?
但实际上,我们的系统中只有一个队列工作人员用于发送电子邮件,并且在过去几天中没有发送任何电子邮件。那么为什么仍然有一个队列工人在运行?
除了“手动启动”(即我们的情况 - 通过发送邮件的命令)之外,队列工作人员可能在Laravel系统中访问数据库还有其他原因吗?
我们目前正在使用Laravel 5.1。
答
首先,Laravel工作人员正在使用DB来存储其作业详细信息。
而且,你应该指出的次工作应该使用的最大尝试数:
php artisan queue:listen connection-name --tries=3
然后建立一个供应商来处理,如果任何排队的作业失败。
对于你的主要问题,你应该安装supervisor,那么你可以有一个用户界面来管理你的工人。
Laravel队列不会根据请求启动,除非它的驱动程序设置为“sync”。你可能有一个cron定期运行'queue',它可能没有'--tries'限制。 –
你有supervisord在后台运行吗? –