@timmy88

Как правильно работать с queue на Laravel на проде через CRON?

У меня VDS, разобрался с schedule и queue в ларавель. Если с schedule вопросов совсем нет, а вот с очередями есть.
Мне бы было удобно чтобы cron запускался каждые 5 минут (написать расписание не сложно) и накидывал в очередь задания. Но вот как работать с queue:work? По идее эту команду нужно запускать один раз после перезапуска, а остальное каждые 5 минут, тем более queue:work является бесконечным заданием, вдруг я запушу его несколько раз и сервер свой положу
  • Вопрос задан
  • 273 просмотра
Пригласить эксперта
Ответы на вопрос 3
vfreelancer
@vfreelancer
php
можешь cron-ом запускать каждую минуту php artisan queue:work --max-jobs=30
Ответ написан
Комментировать
Sanes
@Sanes
touch /etc/systemd/system/queue-main.service
chmod 664 /etc/systemd/system/queue-main.service
nano /etc/systemd/system/queue-main.service

[Unit]
Description=queue-service
[Service]
Type=simple
User=lemp
WorkingDirectory=/var/www/lemp/www
ExecStart=/usr/bin/php artisan queue:work
Restart=always
StandardOutput=append:/var/www/lemp/logs/queaue.log
StandardError=append:/var/www/lemp/logs/queue.log
[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl start/restart/stop queue-main.service
Ответ написан
Комментировать
ig0r74
@ig0r74
MODX-разработчик
Если без настройки супервизора.

По крону каждую минуту:
php artisan schedule:run

В app/Console/Kernel.php:
$schedule->command('queue:work --max-time=300')
            ->everyFiveMinutes();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы