daison / laravel-horizon-cluster
支持集群的修改版laravel/horizon
0.2.0
2024-04-19 04:52 UTC
Requires
- illuminate/support: ^9.21|^10.0|^11.0
- laravel/horizon: ^5.21
- nesbot/carbon: ^2.17|^3.0
This package is auto-updated.
Last update: 2024-09-19 05:53:19 UTC
README
Laravel Horizon - 集群支持
此包扩展了 Laravel Horizon,以支持 Redis 集群。根据我的测试,它还应该与 AWS 弹性负载均衡器兼容。
安装
composer require daison/laravel-horizon-cluster
安装此包后,现在使用 horizon:install
发布资源
php artisan horizon:install
移除自动发现
修改你的原始laravel的 composer.json
并添加以下内容
{ "extra": { "laravel": { "dont-discover": [ "laravel/horizon" ] } } }
使用修改后的horizon
修改你的 config/app.php
return [ 'providers' => [ // ... Daison\LaravelHorizonCluster\AppServiceProvider::class, App\Providers\HorizonServiceProvider::class, ], ];
config/database.php
通常你的laravel config/database.php
应该看起来像这样。
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
确保你的horizon将具有这种配置或类似的配置。
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), ], ], ], ];
享受使用具有集群支持的 Laravel Horizon!