Laravel Horizon & Redis Queues
February 24, 2024
•
14 min read
Introduction
Laravel Horizon provides a beautiful dashboard and code-driven configuration for your Redis queues. It monitors job throughput, failed jobs, and provides real-time insights.
Installation
composer require laravel/horizon
// Publish assets
php artisan horizon:install
// Configure queue connection in config/queue.php
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
],
Configuration
// config/horizon.php
'environments' => [
'production' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['emails', 'notifications'],
'balance' => 'auto',
'processes' => 10,
'tries' => 3,
],
],
'local' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default'],
'balance' => 'simple',
'processes' => 3,
'tries' => 3,
],
],
],
Supervisors
Supervisors manage worker processes:
- Balance Strategies - auto, simple, or false
- Processes - Number of workers
- Min & Max - For auto balancing
Monitoring
// Start Horizon
php artisan horizon
// View Horizon dashboard at /horizon
// Features:
// - Job throughput visualization
// - Failed job tracking
// - Job wait times
// - Recent jobs
// Terminate Horizon
php artisan horizon:terminate
// Purge failed jobs
php artisan horizon:purge
Summary
Laravel Horizon makes Redis queue management effortless. Use it to monitor job performance and scale workers dynamically.
For more Laravel tutorials, see Queues & Jobs.