Как обработать php Ремесленник очереди: слушать - PullRequest
0 голосов
/ 25 февраля 2020

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

Как только я поставлю свою очередь в очередь, используя

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

, она сохраняется в базе данных. и запускает эту команду из терминала php очередь ремесленника: слушаю она работает нормально, как только я закрываю свой терминал, она не слушает мою очередь.

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

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

установить эту строку в cronjob и работать нормально

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 25 февраля 2020

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

php artisan queue:work --once

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

* * * * * cd /path-to-your-project && php artisan queue:work --once
0 голосов
/ 25 февраля 2020

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...