Как обработать php artisan queue: слушайте

Как обработать php artisan queue: слушайте

25.02.2020 09:38:14 Просмотров 17 Источник

Я столкнулся с серьезной проблемой в системе очереди Laravel, пожалуйста, помогите мне решить эту проблему.

Как только я помещаю свою почту в очередь с помощью

$mailer = Mail::to($email_to)->queue(new ContactGeneral($data));  

он сохраняет в базу данных и запускает эту команду из терминала php artisan queue: listen it works fine once I close my terminal it does not listen to my queue.

Для этого я установил расписание в кернеме.php файл, как тот, который работает в каждую минуту

protected function schedule(Schedule $schedule){
    $schedule->command('queue:listen')->everyMinute();
}

установить эту линию как задача cron и работать нормально

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

Проблема в том, как работает каждую минуту запустить каждую минуту это не убить предыдущий процесс и запустить другой процесс в следующую минуту это замедление моего сервера

Пожалуйста, дайте мне знать, как лучше всего это реализовать

Заранее спасибо

У вопроса есть решение - Посмотреть?

Ответы - Как обработать php artisan queue: слушайте / How to process php artisan queue:listen

user8555937

25.02.2020 11:37:46

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

php artisan queue:work --once

В зависимости от того, сколько очередей у вас будет, установите очередь на выполнение один раз в 1, 2 или 3 минуты, чтобы убедиться, что предыдущий процесс имеет время для использования очередей, и они не будут часто вмешиваться. Я думаю, что вы можете использовать следующую команду:

* * * * * cd /path-to-your-project && php artisan queue:work --once
Aleksandar

25.02.2020 11:43:34

Нет, вам не нужно планировать этот процесс.

пока работает queue: work process, он будет смотреть на вашу таблицу "задания" и запускать задачу за задачей

вам нужно что-то, чтобы убедиться, что процесс не заканчивается, когда вы закрываете консоль, как user8555937 и Webinion сказали, что вам нужен супервизор и его конфигурационный файл, как только вы запустите его, он будет работать в фоновом режиме, и вы можете забыть об этом

Закрыть X