Ой, ничего не найдено!

К сожалению, по вашему запросу пока ничего нет (но это только пока!), зато вы можете подписаться на нашу замечательную email-рассылку, чтобы не пропустить самое интересное в будущем.

  • 317

Очереди в Laravel на продакшн-сервере: настройка и мониторинг

  • 2 минуты на чтение

Очереди в Laravel позволяют выполнять задачи асинхронно, разгружая основной процесс приложения. Это особенно полезно для отправки email, генерации отчетов, обработки изображений и других длительных операций. В этой статье разберем, как правильно запустить и мониторить очередь на продакшн-сервере.

Кто запускает artisan queue:work на сервере?

Вручную запускать php artisan queue:work на продакшн-сервере — не лучший вариант, потому что процесс завершится при разрыве SSH-соединения или перезагрузке сервера. Вместо этого, для управления воркером используется Supervisor — процесс-менеджер, который следит за выполнением команд и автоматически перезапускает их при сбое.

Настройка Supervisor для очередей Laravel

1. Установка Supervisor

На большинстве серверов Linux Supervisor можно установить так:

sudo apt update && sudo apt install supervisor -y

После установки Supervisor должен автоматически запуститься. Если нет, включаем его вручную:

sudo systemctl enable --now supervisor

2. Создание конфигурации для воркера

Открываем файл конфигурации:

sudo nano /etc/supervisor/conf.d/laravel-worker.conf

Добавляем следующее:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work --tries=3
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
numprocs=1
redirect_stderr=true
stdout_logfile=/var/log/laravel-worker.log
Получите 6 месяцев бесплатного хостинга!
Воспользуйтесь нашим промокодом FREE6MONTH и начните свой проект без лишних затрат.

Объяснение параметров:

  • command – запускает воркер Laravel.
  • autostart=true – запускает процесс при старте Supervisor.
  • autorestart=true – перезапускает воркер при сбое.
  • numprocs=1 – количество воркеров (можно увеличить для нагрузки).
  • stdout_logfile – путь к файлу логов. Сохраняем и закрываем файл (Ctrl + X, затем Y и Enter).

3. Применение настроек и запуск воркера

Теперь Supervisor нужно перечитать конфигурацию и обновить список процессов:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker

Проверяем статус воркера:

sudo supervisorctl status

Если всё работает, должно появиться:

laravel-worker:laravel-worker_00   RUNNING   pid 12345, uptime 0:01:10

Как убедиться, что воркер работает?

1. Проверка логов

Если задачи не обрабатываются, сначала проверяем логи Laravel:

tail -f storage/logs/laravel.log

Или лог воркера Supervisor:

tail -f /var/log/laravel-worker.log
Получите 6 месяцев бесплатного хостинга!
Воспользуйтесь нашим промокодом FREE6MONTH и начните свой проект без лишних затрат.

2. Проверка незавершенных задач

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

php artisan queue:failed

Если там есть ошибки, попробуй повторно запустить их:

php artisan queue:retry all

3. Перезапуск воркера после обновления кода

После деплоя кода воркер может продолжать работать со старой версией. Чтобы он корректно обновился, выполните команду:

php artisan queue:restart

Эта команда отправляет сигнал воркерам завершить текущие задачи и автоматически перезапуститься.

Заключение

Теперь ты знаешь, как правильно запускать и мониторить очереди в Laravel на продакшн-сервере. Использование Supervisor позволяет гарантировать стабильную работу воркеров и их автоматический перезапуск при сбоях. Не забывай проверять логи и статус очереди, чтобы оперативно реагировать на возможные ошибки.

Хостинг, на который можно положиться!
Siteko.net

Устали от медленного хостинга или дорогих тарифов? Тогда вам к нам! Siteko.net — это быстрый и простой хостинг для тех, кто ценит удобство и стабильность.

  • Без падений и нервов — наш uptime почти всегда 100%.
  • Гибкие тарифы — только нужные функции, ничего лишнего.
  • Скорость— сайты грузятся, как пуля!
  • Удобно — разобраться сможет даже новичок, всё под рукой.
  • Поддержка всегда рядом 24/7 поможем решить любой вопрос.

Заходите на Siteko.net и попробуйте нас бесплатно первый месяц! Мы делаем всё, чтобы ваш сайт работал без проблем.

Siteko.net — просто, быстро и надёжно!