daison/laravel-horizon-cluster
| Install | |
|---|---|
composer require daison/laravel-horizon-cluster |
|
| Latest Version: | 0.5.0 |
| License: | MIT |
| Last Updated: | Jun 11, 2026 |
| Links: | GitHub · Packagist |

Laravel Horizon - Cluster Support
This package extends Laravel Horizon with support for a Redis cluster. Based on my testing, it should also be compatible with AWS Elastic Load Balancer.
Installation
composer require daison/laravel-horizon-cluster
After installing this package, now publish the assets using horizon:install
php artisan horizon:install
Remove the auto discover
Modify your original laravel's composer.json and add this
{
"extra": {
"laravel": {
"dont-discover": [
"laravel/horizon"
]
}
}
}
Use the modified horizon
Modify your config/app.php
return [
'providers' => [
// ...
Daison\LaravelHorizonCluster\AppServiceProvider::class,
App\Providers\HorizonServiceProvider::class,
],
];
config/database.php
Usually your laravel config/database.php should look like this.
return [
'redis' => [
'client' => 'predis',
'clusters' => [
'default' => [
[
'host' => env('REDIS_HOST', '127.0.0.1'),
'port' => env('REDIS_PORT', '6379'),
'password' => env('REDIS_PASSWORD', null),
'database' => 0,
],
],
// ...
],
'options' => [
'cluster' => 'redis',
],
],
];
config/horizon.php
Make sure your horizon will have this kind of config or similar.
return [
'use' => 'clusters.default',
// ...
'defaults' => [
'worker' => [
'connection' => 'redis',
'balance' => env('HORIZON_QUEUE_WORKER_BALANCE', false),
'timeout' => env('HORIZON_QUEUE_WORKER_TIMEOUT', 10),
'sleep' => env('HORIZON_QUEUE_WORKER_SLEEP', 3),
'maxTries' => env('HORIZON_QUEUE_WORKER_MAXTRIES', 3),
],
],
'environments' => [
env('APP_ENV') => [
'worker' => [
'connection' => 'redis',
'queue' => [
'{redis-high}',
'{redis}',
'{redis-low}',
],
'memory' => env('HORIZON_QUEUE_WORKER_MEMORY', 128),
'minProcesses' => env('HORIZON_QUEUE_WORKER_MIN_PROCESSES', 1),
'maxProcesses' => env('HORIZON_QUEUE_WORKER_MAX_PROCESSES', 3),
],
],
],
];
config/queue.php
Make sure your 'redis' is wrapped with curly brace
// ...
'redis-low' => [
// ...
'queue' => env('REDIS_QUEUE', '{redis-low}'),
// ...
],
'redis' => [
// ...
'queue' => env('REDIS_QUEUE', '{redis}'),
// ...
],
'redis-high' => [
// ...
'queue' => env('REDIS_QUEUE', '{redis-high}'),
// ...
],
Enjoy using Laravel Horizon with Cluster support!
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.
Version History
| Version | Released | Laravel | License |
|---|---|---|---|
| 0.5.0 | ^9.21| | MIT | |
| 0.4.0 | ^9.21| | MIT | |
| 0.3.0 | ^9.21| | MIT | |
| 0.2.0 | ^9.21| | MIT | |
| 0.1.0 | ^8.17| | MIT |