【发布时间】:2016-04-01 19:34:19
【问题描述】:
情况
我正在使用 Laravel 队列来处理大量媒体文件,单个作业预计需要几分钟(假设最多一个小时)。
我正在使用 Supervisor 来运行我的队列,并且一次运行 20 个进程。我的主管配置文件如下所示:
[program:duplitron-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/duplitron/artisan queue:listen database --timeout=0 --memory=500 --tries=1
autostart=true
autorestart=true
user=duplitron
numprocs=20
redirect_stderr=true
stdout_logfile=/var/www/duplitron/storage/logs/duplitron-worker.log
在我的duplitron-worker.log 中,我注意到Failed: Illuminate\Queue\CallQueuedHandler@call 偶尔会出现,我想更好地了解究竟是什么失败了。我的 laravel.log 文件中没有任何内容(通常会出现异常)。
问题
有没有一种方便的方法可以让我详细了解导致我的工作失败的原因?
【问题讨论】:
-
在 supervisord.conf 的
[supervisord]下添加loglevel。您可以从debug开始(在此处查看更多信息:supervisord.org/logging.html)。通常是它失败的原因,因为您运行的代码没有以正确的“退出状态”结束。你也可以在这里看到它:stackoverflow.com/questions/28937722/… 最后一件事,你可能需要在你的配置中添加stderr_logfile。