讲师中心 微信公众号
AI工具推荐 视频效率加速

Laravel Horizon监控_Horizon如何监控Redis队列状态【教程】

落宇大大_2781

落宇大大_2781

发布时间:2026-05-07 07:06:26

|

321人浏览过

|

来源于php中文网

原创

Horizon需手动配置路由、队列名和Redis清理,否则监控失真;不支持Redis集群,waiting统计滞后,且“成功”仅指执行完成而非业务成功。

laravel horizon监控_horizon如何监控redis队列状态【教程】

Horizon 本身不自动暴露监控页面,也不默认捕获所有队列异常;它只反映“是否执行完”,不判断“是否成功”。要真正用起来,得手动配路由、对齐队列名、清理 Redis 堆积数据,否则看到的 waiting 数和实际积压可能严重脱节。

Horizon Web 页面打不开:/horizon 路由没注册或权限失控

装完 laravel/horizon 并运行 php artisan horizon,不代表你能访问 /horizon。它只是起了 worker 进程,Web 控制台是另一套逻辑。

  • 必须在 routes/web.php 中显式添加 Horizon::routes(); —— 不是自动加载,也不是靠中间件隐式启用
  • 强烈建议包在环境判断里:if (app()->environment('local', 'staging')) { Horizon::routes(); },生产环境直接禁用,避免敏感指标泄露
  • 如果你项目全局加了 auth 中间件(比如强制登录),Horizon::routes() 默认不带任何认证,得手动指定:Horizon::routes()->middleware(['auth']);
  • 确认 Nginx/Apache 没把 /horizon 路径重写或拦截掉;常见错误是伪静态规则把所有非文件请求都转给了 index.php,但漏掉了这个前缀

任务一直卡在 “waiting”:队列名不匹配 or Supervisor 没真跑起来

Horizon 的 UI 显示 waiting=50,但你发的任务就是不消费——大概率不是 Horizon 坏了,而是底层没对齐。

redis-tools
redis-tools

按类别查找Redis命令、检测服务器连接、监控键数量和内存占用,支持离线速查表。

下载
  • Horizon 默认只监听 default 队列;如果你用 dispatchOnConnection('redis')->onQueue('emails'),它根本不会处理,得去 config/horizon.php 的 environments 里把 'queues' => ['default', 'emails'] 加进去
  • 运行 ps aux | grep horizon,如果只看到 1 个主进程、没有带 supervisor- 前缀的子进程,说明 Supervisor 没生效;检查配置里是否漏了 numprocs=4,然后必须执行 sudo supervisorctl reread && sudo supervisorctl update && sudo supervisorctl start horizon:
  • Redis 连接失败也会表现为 waiting 不动;试下 redis-cli -h 127.0.0.1 -p 6379 LLEN queues:default,如果报错或返回 (error),先查 config/database.php 里的 redis.default 配置和 .env 中的 REDIS_HOST/REDIS_PASSWORD

Redis 内存暴涨、horizon:clear 不起效:trim 配置没生效 or Cluster 不支持

高频短任务跑几天后,redis-cli info memory 显示 used_memory 飙升,但 php artisan horizon:clear 执行完没变化——问题出在配置粒度和底层限制上。

  • 'recent' => 1000 只控制 UI 展示条数,不影响 Redis 实际存储;真正删数据靠的是 'completed' => 1000 和 'failed' => 1000,它们分别对应 horizon:recent_jobs 和 horizon:failed_jobs 这两个 key 的最大长度
  • php artisan horizon:terminate 不清 Redis,只让 worker 优雅退出;必须配合 horizon:clear 定期执行(比如 crontab 每小时一次)
  • 如果用的是 Redis Cluster 或哨兵模式,Horizon 会直接报 ERR unknown command `evalsha`;它目前(截至 2026 年 5 月)**不支持集群拓扑**,必须切回单机 Redis 或加一层 Proxy

监控积压却告不了警:waiting() 返回值滞后 or 队列前缀不一致

你写了 Artisan 命令调 Horizon::stats()->waiting() 判断积压,但告警总延迟几分钟甚至不触发——因为这个值来自 Horizon 自己缓存的统计,不是实时 Redis 状态。

  • 若需秒级响应,绕过 Horizon,直接用 redis-cli LLEN queues:default;注意确认前缀:默认是 queues:,但可通过 HORIZON_PREFIX 环境变量或 config/horizon.php 中的 prefix 修改
  • Horizon::stats() 每 5 秒更新一次,且只统计被 Horizon worker 监听的队列;如果你有部分任务走 queue:work,它完全看不到
  • 别只盯一个队列;多个业务线可能用了不同队列名(notifications, exports),得逐个查 LLEN queues:notifications,否则积压藏在盲区

最常被忽略的一点:Horizon 的 “success” 状态仅表示任务被 worker 取出并执行完毕,哪怕 handle() 里抛了未捕获异常、数据库事务回滚、HTTP 请求 500,只要没崩掉整个进程,它就标 green。真要判断业务成败,得结合日志、失败表、或在任务里主动上报状态。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

857

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

835

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

2488

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

4281

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

6190

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

4096

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

7689

2025.08.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

1476

2026.03.04

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何安装 Composer
如何安装 Composer

共1课时 | 210人学习

Composer手册
Composer手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn