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