Конфигурация Supervisor для фоновых очередей Laravel Queue и Python Celery
Файл supervisord.conf для управления воркерами фоновых задач: автоперезапуск воркеров Laravel (php artisan queue:work), Celery, мониторинг и логирование.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/supervisor/conf.d/laravel-worker.conf
# /etc/supervisor/conf.d/laravel-worker.conf
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/example.com/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=4
redirect_stderr=true
stdout_logfile=/var/www/example.com/storage/logs/worker.log
stopwaitsecs=3600
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
numprocs=4 |
4 | Запускает 4 параллельных воркера обработки задач из очереди Redis. |
stopwaitsecs=3600 |
3600 | Дает воркеру время корректно завершить текущую задачу перед плановым перезапуском. |
Restart=always |
always | Обеспечивает автоматический перезапуск демона или скрипта при критическом сбое или нехватке памяти. |
LimitNOFILE=65535 |
65535 | Снимает стандартные ограничения ОС на количество одновременно открытых сетевых сокетов и дескрипторов. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: 2-4 vCPU, 4 GB RAM, Redis VDS
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
2-4 vCPU /
4 GB RAM /
40 GB NVMe
Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
2-4 vCPU /
4 GB RAM /
40 GB NVMe
Beget
Turbo 4 GB
Рекомендуемые ресурсы
2-4 vCPU /
4 GB RAM /
40 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Как перезапустить воркеры после деплоя?
Выполните команду `supervisorctl restart laravel-worker:*`.
Как посмотреть логи запущенной службы в реальном времени?
Выполните команду `journalctl -u <имя_сервиса>.service -f -n 100`.
Что делать после редактирования .service файла?
Всегда выполняйте `systemctl daemon-reload` перед перезапуском службы `systemctl restart <имя_сервиса>`.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.