- A+
所属分类:教程文章

要实现PHP队列的监控面板,核心是结合消息队列系统(如Redis、RabbitMQ、Beanstalkd等)与后端统计逻辑,再通过前端界面展示队列状态。下面介绍常见方案和搭建步骤。
选择合适的消息队列中间件
PHP项目中常用的队列服务有以下几种:
- Redis + Laravel Queue / Pheanstalk:轻量易用,适合中小项目
- RabbitMQ:功能强大,支持复杂路由和多协议
- Beanstalkd:简单高效,适合任务型队列
以Redis为例,若使用Laravel框架,自带Queue系统已支持Redis驱动,可直接利用其结构进行状态读取。
搭建队列监控面板的基本思路
监控面板本质是实时读取队列中的任务数量、执行状态、失败任务等信息,并可视化展示。
立即学习“PHP免费学习笔记(深入)”;
- 定时获取队列长度(待处理、延迟、失败任务数)
- 记录任务处理时间、成功率
- 提供Web界面查看当前状态和历史趋势
可以自己开发一个简单的PHP页面,连接Redis并查询相关key:

BetterYeah AI

110
基于企业知识库构建、训练AI Agent的智能体应用开发平台,赋能客服、营销、销售场景 -BetterYeah

110
查看详情

$redis = new Redis(); $redis->connect('127.0.0.1', 6379); $pendingJobs = $redis->llen('queues:default'); // 待处理任务数 $failedJobs = $redis->llen('failed_jobs'); // 失败任务数
使用现成工具快速搭建监控面板
推荐使用以下开源工具,节省开发成本:
- Laravel Horizon:专为Laravel设计,提供完整UI,支持Redis队列监控,显示任务吞吐量、运行时间、重试次数等。
- Supervisor + 自定义Dashboard:配合Supervisor管理队列进程,用PHP写个页面定时拉取数据展示。
- Rabbiter / RabbitMQ Management Plugin:用于RabbitMQ,开启管理插件后访问 http://server:15672 查看队列详情。
安装Laravel Horizon示例:
启动后访问 /horizon 即可看到实时队列状态。
实现自定义监控面板的关键点
如果不想依赖框架,可以自己构建简易监控页:
- 创建一个admin/queue-status.php页面
- 通过Redis或数据库查询当前队列状态
- 加入AJAX轮询每5秒刷新一次数据
- 记录日志表,统计每日任务处理情况
关键数据建议展示:
- 待处理任务数
- 正在执行中的任务(如有标记)
- 失败任务总数及最近几条详情
- 队列处理速度(条/分钟)
基本上就这些。根据项目规模选择合适方案,小项目可用脚本+页面快速实现,大项目建议用Horizon或RabbitMQ配套工具。关键是确保队列进程稳定运行,并能及时发现堆积问题。




