Черги Laravel обробляють тисячі задач у фоні — від відправки email і генерації PDF до синхронізації замовлень з Nova Poshta та LiqPay. Але без належного моніторингу збій у черзі зупиняє бізнес-процеси непомітно — і ви дізнаєтесь про проблему тільки від клієнта.
Laravel Horizon вирішує цю проблему, надаючи панель моніторингу в реальному часі з метриками, сповіщеннями та керуванням воркерами.
Що дає Horizon бізнесу
Horizon — офіційний пакет Laravel для управління чергами на базі Redis. Він показує:
- Кількість задач у черзі в реальному часі
- Час виконання кожного job-класу
- Кількість збоїв і повні трасування помилок
- Пропускну здатність черги (throughput) за годину, день, тиждень
Для бізнесу це означає: ви бачите, чи обробляються замовлення, чи відправляються повідомлення, чи синхронізуються дані — без ручного моніторингу сервера.
Налаштування Horizon у проєкті
Встановлення займає менше години:
composer require laravel/horizon
php artisan horizon:install
php artisan migrate
Конфігурація у config/horizon.php дозволяє задати кілька середовищ воркерів: local, staging, production. Для кожного — окремі черги, пріоритети та кількість одночасних процесів.
Типова продакшн-конфігурація для e-commerce:
'production' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['critical', 'default', 'notifications'],
'balance' => 'auto',
'maxProcesses' => 10,
'tries' => 3,
],
], Черга critical для платіжних операцій
Для інтеграцій LiqPay, Monobank і Nova Poshta ми виносимо платіжні та логістичні callback-и в окрему чергу critical з найвищим пріоритетом. Це гарантує, що статус замовлення оновлюється миттєво, навіть при пікових навантаженнях.
Сповіщення при збоях
Horizon підтримує Horizon::routeSlackNotificationsTo() — налаштовуємо Slack-канал або Telegram-бот, і команда отримує сповіщення щойно воркер упав або job зазнав невдачі тричі поспіль. Реакція на збій — хвилини замість годин.
Результат для бізнесу
Клієнти, які перейшли з базового php artisan queue:work на Horizon, отримали:
- Повну видимість у операційну роботу черг без доступу до сервера
- Скорочення часу реакції на збої з годин до хвилин
- Зменшення кількості «зависаючих» замовлень на 90%
Хочете налаштувати Horizon у вашому Laravel-проєкті? Зв'яжіться з MaxiMoruM →