Queues zijn essentieel voor performante Laravel-applicaties: e-mails versturen, imports verwerken, notificaties sturen — al deze taken gooi je in een queue zodat de gebruiker niet hoeft te wachten. Maar hoe weet je of alles werkt? Horizon.
Wat is Laravel Horizon?
Horizon is een officieel Laravel-pakket dat een mooi dashboard biedt voor je Redis-queues. Je ziet in real-time welke jobs er worden verwerkt, hoeveel er in de wachtrij staan, welke gefaald zijn en wat de verwerkingstijd is.
Installatie
composer require laravel/horizon
php artisan horizon:install
php artisan migrate
Horizon vereist Redis als queue-driver. Pas je .env aan:
QUEUE_CONNECTION=redis
Start Horizon:
php artisan horizon
Het dashboard
Via /horizon (beveiligd met gate) heb je toegang tot:
- Jobs: overzicht van recente en lopende jobs
- Metrics: throughput, runtime, failure rate
- Failed jobs: mislukte jobs met stacktrace en retry-knop
- Workers: actieve processes en hun belasting
Productie-tips
Supervisor voor procesmanagement
In productie laat je Horizon niet handmatig draaien. Gebruik Supervisor:
[program:horizon]
command=php /var/www/app/artisan horizon
autostart=true
autorestart=true
Alerts bij failures
Configureer een HorizonAlert om per e-mail of Slack te worden gewaarschuwd bij een hoog aantal mislukte jobs.
Balancer
Horizon’s auto balancer verdeelt workers automatisch op basis van queue-belasting. Handig bij ongelijkmatige workloads.
Waarom queues en Horizon?
Applicaties zonder queues zijn traag of fragiel. Bij Meesy implementeren we queues standaard in maatwerk applicaties waar achtergrondtaken nodig zijn. Horizon maakt die applicaties observeerbaar en beheerbaar.
Conclusie
Horizon is een must-have voor elke serieuze Laravel ontwikkeling in productie. Het dashboard is intuitief, de configuratie is eenvoudig en het bespaart je uren debuggen. Wil je weten hoe we jouw applicatie productie-ready maken? Neem contact op.