Очередь Laravel с помощью NodeJS PM2
PM2 - это программа мониторинга процессов, написанная на NodeJs. Я часто использую её как альтернативу официальной программе мониторинга процессов Laravel - supervisor. Однако, в отличие от супервизора, это ПО мониторинга процессов имеет меньше зависимостей, меньше конфигураций и проще. В общем, его я ставлю, когда не получается по каким-либо причинам установить supervisor на сервер.
Установка PM2
Установим PM2 в систему глобально, выполнив:
npm install pm2@latest -gОтображаем список всех запущенных процессов
Выполните в командной строке команду, чтобы получить список всех процессов, отслеживаемых PM2 (команда прямо как в Docker).
pm2 ls
Настройка PM2 и создание процессов
Создайте новый YAML файл назвав его process.yml, в который добавьте код, приведенный ниже:
apps:
- name: "queue_worker"
script: artisan
watch: false
interpreter: php
args: "queue:work --tries=3 --timeout=5 --sleep=2"
restart_delay: 3000
error_file: ./storage/logs/queue.error.log
out_file: ./storage/logs/queue.out.log
pid_file: ./storage/app/queue.pidЧтобы узнать подробнее о PM2, советую просмотреть официальную документацию.
Добавляем alias быстрого запуска Laravel очереди
Для запуска мониторинга, создадим короткую команду, отредактируем package.json, куда добавим две новые команды:
"queue:start": "npm run queue:remove && pm2 start process.yml",
"queue:remove": "php artisan queue:restart && pm2 delete process.yml"
Прошу обратить внимание, что перед запуском мониторинга процессов, нам необходимо перезагрузить очередь Laravel. Если этого не сделать, и залить новые файлы на сервер, то без перезагрузки, очередь так и будет ссылаться на старую версию кода. Потому, сначала нужно остановить очередь, дать ей возможность прочитать актуальный код, и запустить заново. Что и делаем команда php artisan queue:restart.
Потому, если вы задаётесь вопросом, что при работе Laravel очереди через PM2, код не обновляется, то вам просто нужно перезагрузить очередь.
Вращаем барабан Запускаем процессы
Теперь, когда мы всё добавили, можем запустить PM2 для работы Laravel очереди.
Читаем логи процессов PM2
Для просмотра логов в PM2 просто выполните команду:
Резюме
В этой статье вы узнали, как можно настроить процессы PM2 для мониторинга Laravel очереди. И как её перезагружать при обновлении кода, чтобы обновить код в очереди. Аналогичным образом, вы можете добавить в мониторинг и процесс Laravel Echo Server-а в PM2, добавив лишь новую запись в конфиг.
Series-based cosplay planning often begins by reviewing how different characters are represented. Planning by series also helps coordinate related characters in a group. When comparing designs from the same work, Demon Slayer cosplay costume ideas(鬼滅の刃 コスプレ衣装の選び方) provides the matching reference point. The category can support both individual and coordinated group planning. Series-level planning works best when each character design is reviewed on its own terms. A clear theme makes later costume and wig choices easier to coordinate.