2016-08-11 4 views
0

Работник очереди Laravel производил множество записей журнала ошибок из-за сбоя сервера БД, в свою очередь журнал Laravel вырос до 150 гб всего за два часа, заполнив весь жесткий диск, чтобы несколько веб-приложений перестали работать.Как я могу понять, почему работает Laravel Queue Worker?

Но на самом деле есть только сотрудник очереди для отправки электронных писем в нашей системе, и никакие электронные письма не были отправлены за прошедшие дни. Так почему же работает рабочий очереди?

Существуют ли другие причины, по которым работник очереди может обращаться к БД в системе Laravel, кроме того, что он запускается «вручную» (т. Е. В нашем случае - командой, отправляющей почту)?

В настоящее время мы используем Laravel 5.1.

+0

Очередь Laravel не запускается по запросу, если только для этого драйвера не установлено значение 'sync'. Вероятно, у вас есть cron для периодического запуска очереди, и у него, вероятно, нет ограничения '--tries'. –

+0

У вас есть супервизор работает в фоновом режиме? –

ответ

0

Во-первых, работник Laravel использует БД для хранения своих данных о работе.

И, следует указать максимальное количество раз, работа должна быть предпринята попытка использования:

php artisan queue:listen connection-name --tries=3

Тогда настройки провайдера для обработки, если какой-либо очереди сбой задания.

Для вашего основного вопроса вы должны установить supervisor, тогда у вас может быть пользовательский интерфейс для управления вашими работниками.

Смежные вопросы