Appearance
概述
EBAOZU V4 使用 ThinkPHP Queue 结合 Redis 作为底层异步消息队列驱动,用于处理订单超时自动取消、支付后通知分发、租金账单生成、微信模板消息下发及高并发耗时任务。
架构说明
- Swoole 常驻进程内置调度:EBAOZU V4 主服务通过
php think swoole启动,框架内部已集成大部分异步 Task 工作协程与事件循环。 - 独立 Queue Worker 消费者:对于大体量或重度依赖队列的独立消费场景,可通过 Supervisor 部署独立的 ThinkPHP Queue 消费者常驻进程。
Supervisor 守护进程配置指南
主服务守护进程(必须配置)
在宝塔面板【Supervisor管理器】中添加守护进程:
- 名称:
ebaozu_v4 - 启动用户:
www - 运行目录:
/www/wwwroot/你的项目目录 - 启动命令:
php think swoole - 进程数量:
1
独立消息队列守护进程(可选/大型业务推荐)
若需要独立启动 ThinkPHP 队列消费者处理高并发任务:
- 名称:
ebaozu_queue - 启动用户:
www - 运行目录:
/www/wwwroot/你的项目目录 - 启动命令:
php think queue:listen --queue default --delay 0 --memory 128 --sleep 3 --tries 3 - 进程数量:根据服务器核心数与队列负载可设置为
1 ~ 4
常见问题与排查
- 队列任务未被执行(堆积在 Redis):
- 检查 Redis 服务是否正常运行。
- 检查
.env中的CACHE.PREFIX和REDIS连接配置。 - 在终端手动运行
php think queue:work测试消费是否有抛出 PHP 致命异常。
- 修改业务代码后队列任务仍按旧逻辑执行:
- 队列监听进程常驻内存,修改了 Job 类(
app/jobs/)或相关 Services 逻辑后,必须重启 Supervisor 中的队列守护进程。
- 队列监听进程常驻内存,修改了 Job 类(