vincentbean/horizon-extended-dashboard

1.2.2 2024-01-18 13:36 UTC

This package is auto-updated.

Last update: 2024-09-18 15:04:10 UTC


README

Laravel Horizon Extended Dashboard

这是一个使用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)。有关更多信息,请参阅许可证文件