Використання черг на спільному (shared) хостингу з Laravel
Іноді потрібно використовувати спільний хостинг, який не дозволяє інсталювати супервізор для запуску черги.
Іноді потрібно використовувати спільний хостинг, який не дозволяє інсталювати супервізор для запуску черги.
Типовим прикладом цього є сервери, розгорнуті лише з доступом через Cpanel.
Одним із підходів до роботи з чергою, яка не залежить від часу (наприклад, надсилання електронних листів), є додавання завдання до планувальника, який запускає робочу чергу щохвилини;
1
2
3
$schedule->command('queue:work --stop-when-empty')
->everyMinute()
->withoutOverlapping();
Додавши цей код до планувальника в app\Console\Kernel.php
(або в bootstrap/app.php
у Laravel 11), а потім налаштувавши завдання cron для запуску планувальника, ви гарантуєте, що чергу обслуговуватиметься щохвилини.
Для серверів Cpanel інструкція Cron буде виглядати так:
1
* * * * * /usr/local/bin/php /home/{account_name}/live/artisan schedule:run
де {account_name}
— обліковий запис користувача, під яким запущена cpanel, а live — папка Laravel.
Переклад замітки: talltips.novate.co.uk/laravel/using-queues-on-shared-hosting-with-laravel