Обработка очереди в фоновом режиме с Laravel 5.6 останавливается при закрытии терминала - PullRequest
0 голосов
/ 04 июля 2019

Я использовал следующие команды, чтобы навсегда запустить процесс очереди даже после закрытия серверного терминала.Но это останавливается, как только я закрываю терминал.Пожалуйста, помогите мне с этим.Как поставить, всегда работает в фоновом режиме.Вы можете видеть, что я использовал все команды nohup, но не повезло.

1) nohup php artisan queue:work --tries=1 </dev/null >/dev/null 2>&1 &
2) nohup php artisan queue:work --tries=1 >/dev/null 2>&1 &
3) nohup php artisan queue:work --daemon > /dev/null 2>&1 &
4) nohup php artisan queue:work > /dev/null 2>&1 &
5) nohup php artisan queue:work --tries=1
6) nohup php artisan queue:listen >/dev/null 2>&1 &

Примечание: у меня нет root доступа к серверу.Я использую пользователя, созданного из WHM.IDK, если это проблема.

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Перейдите на CPanel -> Cron Jobs страницу

И создайте задание cron, добавив команду, подобную этой:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

Не забудьте изменить/ path-to-your-project в качестве папки вашего проекта

Он будет запускать запланированные команды laravel.

И поместить это в метод schedule в файле app/Console/Kernel.php.

$schedule->command('queue:work --daemon')->everyMinute()->withoutOverlapping();
0 голосов
/ 04 июля 2019

Опасайтесь, что это невозможно, когда вы останавливаете команду или закрываете соединение, процесс останавливается.

Из документации Laravel

Чтобы сохранить очередь: рабочий процесс постоянно работает в фоновом режиме, Вы должны использовать монитор процесса, такой как Supervisor, чтобы гарантировать, что работник очереди не останавливается.

https://laravel.com/docs/5.8/queues#supervisor-configuration

...