直接打开/horizon页面可查看队列实时执行情况,需重点关注顶部“queues”栏的pending/processing/jobs per minute/avg. duration四项指标、队列详情页的recent jobs与metrics图表,以及左侧supervisors和failed入口所反映的进程健康度与失败任务。

直接打开 /horizon 页面就能看到队列实时执行情况,但要真正看懂、用好这个仪表盘,得关注三个关键位置和对应的数据含义——不是只扫一眼数字就完事。
顶部队列概览栏:一眼识别积压风险
页面顶部“Queues”标签页下,列出所有被 Horizon 监控的队列(如 default、high、notifications)。每行列出四项核心指标:
- Pending jobs:当前等待被取走的任务数。持续 ≥ 50 是积压信号,尤其对 high 队列需立即响应
- Processing:正在被 worker 执行的任务数。若长期为 0 或极低,说明 worker 没在干活或配置漏了该队列
- Jobs per minute:近一分钟完成任务数。明显下降 + Pending 上升 = 处理能力已跟不上
- Avg. duration:平均执行耗时。突然拉高往往意味着某个任务卡住、DB 查询慢或外部 API 延迟
点击队列名进入详情页:定位具体卡点
点进 high 或 default 队列后,重点看两个区域:
- Recent Jobs 列表:按时间倒序展示最近入队任务。筛选 reserved_at 为空 且 available_at 是 1 分钟前甚至更早 的任务——这类任务“躺在队列头却没人取”,是典型的消费阻塞
- Metrics 图表区:吞吐量(Jobs/min)和耗时(Avg. duration)曲线是否同步异常?比如耗时陡升同时吞吐断崖下跌,大概率是某类任务内部逻辑变慢或资源争抢
左侧导航栏里的“Supervisors”和“Failed”
这两个入口反映的是执行层健康度:
- Supervisors:显示所有 supervisor 进程状态。绿色表示活跃,灰色表示停止。如果某个 supervisor 显示“Stopped”但本该监听 high 队列,说明进程挂了或配置未生效
-
Failed:列出被 Horizon 捕获的失败任务(注意:仅限 Redis 驱动下存于
horizon:failed结构,不等于 database 驱动的failed_jobs表)。点开任一失败项,能看到完整堆栈、原始 payload 和重试按钮
仪表盘数据本身是可靠的,前提是 horizon:snapshot 命令每分钟成功运行一次,且 Redis 连接稳定。别依赖“页面看起来没红点”来判断正常——得看数字趋势、对比 Redis 底层长度、再查 jobs 表状态,三者交叉印证才稳。











