В продакшене нам нужно поддерживать работу нашего artisan queue:work. По какой-то причине процесс artisan queue:work может перестать работать. Поэтому нам нужен монитор процесса, который поддерживает работу нашего artisan queue:work и отслеживает текущую очередь.

Согласно документации Laravel, монитор процесса, используемый для запуска и мониторинга очереди, называется Supervisor. В этом посте я буду использовать pm2 вместо супервизора. PM2 — это демон-менеджер процессов, который поможет вам управлять вашим приложением и поддерживать его онлайн 24 часа в сутки, 7 дней в неделю.

Установка PM2
Мы можем установить pm2 с помощью npm с помощью следующей команды:

npm install pm2 -g

Настройте файл PM2 для очереди Laravel
Создайте your-worker-name.yml в папке вашего проекта laravel, вы можете поместить файл в корневую папку или создать новую папку, например /worker .

apps:
       - name: your-worker-name
         script: artisan
         exec_mode: fork
         interpreter: php
         instances: 1
         args:
               - queue:work
               - --tries=5
               - --sleep=1

Запустите PM2
Откройте терминал из корня папки проекта Laravel и выполните следующую команду.

pm2 start your-worker-name.yml
// Or if you put pm2 file not in root folder
pm2 start worker/your-worker-name.yml

Мониторинг PM2
Чтобы отслеживать работу очереди Laravel, мы можем использовать команду pm2 list, и вот результат.

Это все, чем я могу поделиться из этого поста, пожалуйста, не стесняйтесь оставлять комментарии для любых предложений или вопросов. Спасибо, что прочитали мой пост. Увидимся…

Ссылки
1. https://laravel.com/docs/8.x/queues#supervisor-configuration
2. https://pm2.keymetrics.io/