Horizon 爲 Laravel 提供了基於 Redis 的、擁有美觀後臺的、代碼驅動配置的隊列系統。Horizon 讓咱們能夠輕鬆監控隊列系統的關鍵指標,例如任務吞吐量、運行時間和失敗任務等。
Laravel Horizon 是官方的擴展包,配置以及使用很簡單,跟着文檔就能夠。php
composer require laravel/horizon
php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
config/horizon.php
,能夠根據需求修改php artisan horizon
you_site.com/horizon
就能夠看到後臺了還有其餘命令html
php artisan horizon:pause
php artisan horizon:continue
php artisan horizon:terminate
能夠看到使用很簡單,在部署的時候要注意如下幾點laravel
failed_jobs
數據表,相關文檔能夠看這裏 默認狀況下,只能在 local
訪問,固然咱們能夠自定義segmentfault
config/horizon.php
中 environments
配置項。能夠看到其中有 local
和 production
,將 production
修改成線上 .env
中 APP_ENV
的值Horizon:auth
方法,return true
便可訪問,不然返回 403
。在 app/Providers/AppServiceProvider.php
中修改以下public function boot() { Horizon::auth(function ($request) { // 這裏進行判斷,根據需求自行選擇 // 經過認證能夠訪問 if (Auth::check()) { return true; } // 指定參數能夠訪問 if ($request->input('q') == 'horizon') { return true; } }); }
[program:horizon] process_name=%(program_name)s command=php /var/www/you_project_path/artisan horizon autostart=true autorestart=true user=laradock redirect_stderr=true stdout_logfile=/var/www/you_project_path/horizon.log
app/Console/Kernel.php
修改以下protected function schedule(Schedule $schedule) { // $schedule->command('inspire') // ->hourly(); $schedule->command('horizon:snapshot')->everyFiveMinutes(); }
Laravel Horizon 還有標籤以及通知的配置,感興趣的能夠查看文檔。app
參考資料:官方擴展包 —— 隊列系統解決方案:Laravel Horizon。composer