# 恒联数通 · 生产环境部署与收益中心队列运维指南 ## 一、系统队列与守护进程配置 (Supervisor) 本项目异步事件与收益结算依赖 ThinkPHP Queue (基于 Redis 独立 DB3)。 ### 1. 队列核心参数 (`application/extra/queue.php`) - **驱动**:`Redis` - **库隔离**:`redis.select = 3` (彻底隔离服务器其他站点) - **超时保护**:`expire = 180` 秒 (严禁设为 0,防止任务弹出即超时被多 Worker 并发重复消费) ### 2. Supervisor 队列守护配置 生产服务器必须常驻启动两个队列 Worker: ```ini # /etc/supervisor/conf.d/henglian_queue.conf [program:henglian-shopro-high] command=/www/server/php/80/bin/php /www/wwwroot/henglian.gynhc.com/think queue:work --queue shopro-high --daemon directory=/www/wwwroot/henglian.gynhc.com user=www autorestart=true redirect_stderr=true stdout_logfile=/www/wwwroot/henglian.gynhc.com/runtime/log/queue_high.log [program:henglian-shopro] command=/www/server/php/80/bin/php /www/wwwroot/henglian.gynhc.com/think queue:work --queue shopro --daemon directory=/www/wwwroot/henglian.gynhc.com user=www autorestart=true redirect_stderr=true stdout_logfile=/www/wwwroot/henglian.gynhc.com/runtime/log/queue.log ``` --- ## 二、定时任务配置 (Crontab) 系统支持传统标准日结与分钟级增量结算。 ### 1. 生产环境推荐日结配置(次日凌晨 00:30 执行) ```bash # 宝塔计划任务 / Crontab (以 www 用户运行) 30 0 * * * cd /www/wwwroot/henglian.gynhc.com && /www/server/php/80/bin/php think shopro:partner:settle --daily >> /www/wwwroot/henglian.gynhc.com/runtime/log/daily_settle.log 2>&1 ``` > **说明**:`--daily` 模式在执行前会自动触发 `PartnerCompensateService` 前置未结算漏单扫描与自动补偿,确保昨日全天所有订单即时收益 100% 入账后再核算 GMV 和加权分红池,杜绝漏发。 --- ## 三、对账与异常补偿运维工具 (CLI) 系统内置了生产级自动对账、健康检查与安全补偿服务: ### 1. 全网未结算订单体检与诊断 ```bash php think shopro:partner:settle --check ``` **诊断输出示例**: ```json { "status": "healthy", "queue": { "connector": "Redis", "expire_seconds": 180, "redis_db": 3, "default_queue": "default" }, "unsettled_orders_count": 0, "failed_marked_orders_count": 0, "warnings": [], "check_time": "2026-09-19 16:00:00" } ``` ### 2. 自动安全对账与补偿发放 (一键治愈漏单) 当遭遇 Redis 重启、Worker 异常崩溃等极端情况时,无需编写临时脚本,直接运行: ```bash php think shopro:partner:settle --compensate ``` - 自动扫描所有已支付但未在 `shopro_partner_reward` 中有记录的合格订单。 - 借助 `settleOrder()` 原生行锁(`SELECT ... FOR UPDATE`)与唯一索引(`uk_order_user_type`)进行安全补发。 - 具备绝对幂等性,绝不重复发放。 --- ## 四、自动化回归验证 项目包含全面的生产可靠性测试套件: ```bash # 运行收益中心与队列可靠性规范自动化测试 node tests/partner/verify_production_queue_and_compensation_spec.js # 运行全套业务回归测试 node tests/verify_minute_settle_spec.js node tests/verify_all_pools_minute_settle_spec.js node tests/verify_commission_goods_isolation_spec.js node tests/verify_commission_goods_rules_spec.js node tests/partner/verify_admin_views_alignment_spec.js node tests/partner/verify_partner_reward_to_money_spec.js ```