Laravel Horizon
// Install: composer require laravel/horizon
// Publish: php artisan horizon:install
// config/horizon.php
return [
"environments" => [
"production" => [
"supervisor-1" => [
"connection" => "redis",
"queue" => ["high", "default", "low"],
"balance" => "auto",
"minProcesses" => 1,
"maxProcesses" => 10,
"tries" => 3,
],
],
"local" => [
"supervisor-1" => [
"connection" => "redis",
"queue" => ["default"],
"balance" => "simple",
"minProcesses" => 1,
"maxProcesses" => 3,
],
],
],
];
Balancing Strategies
// Auto balancing - redistributes workers based on queue load
"balance" => "auto",
// Simple balancing
"balance" => "simple",
// False (each supervisor runs all queues equally)
"balance" => false,
Horizon Dashboard Authorization
// In AppServiceProvider
Gate::define("viewHorizon", function (User $user) {
return $user->is_admin;
});
Running Horizon
// Start: php artisan horizon
// Pause: php artisan horizon:pause
// Continue: php artisan horizon:continue
// Snapshot: php artisan horizon:snapshot
// Status: php artisan horizon:status