vincentbean / horizon-extended-dashboard
1.2.2
2024-01-18 13:36 UTC
Requires
- php: ^8.0
- ext-pcntl: *
- ext-posix: *
- asantibanez/livewire-charts: ^3.0.1
README
这是一个使用Livewire编写的Laravel Horizon的替代仪表板。我创建这个仪表板的原因是默认的Horizon仪表板缺少控制面板和队列过滤器等特性。
特性
- Horizon的详细概述,显示所有可用数据
- 从仪表板暂停和终止主进程和监控器的控制
- 批量视图
- 最近、待处理、完成和失败的作业视图
- 在队列上进行过滤
- 捕获作业上发生的所有异常
- 详细统计信息
- 作业运行时间
- 队列运行时间
- 尝试次数
- 每个队列的CPU/内存使用情况
- 等等
- 重试/重新排队任何作业
- 列出作业的所有重试
安装
通过composer安装此包
composer require vincentbean/horizon-extended-dashboard
然后发布资产
php artisan horizon-dashboard:publish
您可以选择将其添加到post install或update composer脚本来确保您始终发布最新版本
{ "scripts": { "post-update-cmd": [ "@php artisan horizon-dashboard:publish" ] } }
统计信息
要收集队列统计信息,可以将以下命令添加到您的计划任务中
protected function schedule(Schedule $schedule) { $schedule->command('horizon:snapshot')->everyFifteenMinutes(); $schedule->command('horizon-dashboard:queue-snapshot')->everyFifteenMinutes(); }
聚合数据
为了防止数据库增长,此包包含两个聚合和清理命令。您可以根据安装情况调整这些值。聚合命令的参数以分钟为单位。
protected function schedule(Schedule $schedule) { $schedule->command('horizon-dashboard:aggregate-queue-statistics --interval=60 --keep=240')->everyFifteenMinutes(); $schedule->command('horizon-dashboard:aggregate-job-statistics --interval=15 --keep=60')->everyFifteenMinutes(); }
为此,您必须在MySQL数据库配置文件config/database.php
中禁用严格模式
删除旧统计信息
protected function schedule(Schedule $schedule) { $schedule->command('horizon-dashboard:cleanup-statistics --hours=168')->daily(); $schedule->command('horizon-dashboard:cleanup-exceptions --hours=168')->everyFifteenMinutes(); }
身份验证
此包使用与Laravel Horizon相同的身份验证中间件。
用法
您可以通过访问/horizon-dashboard
来访问仪表板
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。