Как я могу узнать больше о том, почему мой неудачный запуск Laravel не удалось?

Ситуация

Я использую Laravel Queues для обработки большого количества медиафайлов, ожидается, что отдельная работа займет минуты (давайте просто скажем до часа).

Я использую 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 (где обычно появляются исключения).

Вопрос

Есть ли удобный способ для меня узнать больше о том, что заставляет мою работу терпеть неудачу?

Вот что я всегда делаю, но сначала – убедитесь, что у вас есть таблица неудачных заданий! Это хорошо документировано, посмотрите!

  1. Запустите команду php artisan queue:failed чтобы перечислить все неудавшиеся задания и выберите тот, который вам нужен. Запишите идентификатор.

  2. Затем убедитесь, что вы остановили свою очередь с помощью supervisorctl stop all duplitron-worker:

  3. Наконец, убедитесь, что ваша .env настройка для APP_DEBUG = true.

  4. Затем запустите php artisan queue:retry {step_job_1_id}

  5. Теперь вручную запустите php artisan queue:listen --timeout=XXX

Если ошибка является структурной (и большинство из них), вы должны получить сбой в стеке отладки в файле журнала.

Удачи вам в отладке 🙂