Может войдёшь?
Черновики Написать статью Профиль
AlexanderSamara

AlexanderSamara

Вступил в наши ряды: 10 апреля 2020

Замечен в последний раз: 26 ноября 2020

Не писал на форуме

Вы сможете отправить письмо, если войдёте

Комментарии (1)

AlexanderSamara

Спасибо за наводку в статье! Тоже изучаю сейчас этот вопрос. Оптимальное решение на мой взгляд:

В Crontab должна быть одна единственная запись:

 * * * * php /path/to/artisan schedule:run >>/dev/null 2>&1

Все остальные команды должны запускаться уже в методе schedule класса Kernel.

$schedule->command('queue:work --once')->withoutOverlapping()->everyMinute();

или

$schedule->command('queue:work --stop-when-empty')->withoutOverlapping()->everyMinute();

4. Эта музыка будет вечной, если я заменю батарейки

Вы наверное заметили, что команда php artisan queue:work не закончилась после того как все задания в очереди выполнились. Она ждёт новых заданий! Вы можете прервать выполнение нажав Ctrl+C.

Обратите внимание на метод withoutOverlapping(). Это защита от наложения задач.