万花筒 · 停摆终局快照
1. 业务是什么
万花筒是一套祭祀 / 命理类定制视频的自动化渲染流水线:客户在 Windows 客户端选模板、填委托人信息提交订单,服务端调度 45 台租用渲染机(After Effects)+ 6 台 TTS 语音合成 GPU 机,成片自动上传 COS 交付回客户端,按点数计费。
技术栈一句话:腾讯云轻量服务器(Flask new_api.py :5000 收单调度 + admin_web.py :8888 管理后台)+ 轻量数据库 MySQL(main_db,24 张表)+ COS 两个桶(模板下发 / 成片交付)+ 外部渲染 / TTS 集群靠 HTTP 轮询抢单。代码全量在 GitHub 私有仓库 ranzi0000/wanhuatong。
2. 运营总账
| 指标 | 数值 | 备注 |
|---|---|---|
| 运营周期 | 2026-02-26 → 2026-06-03 | 约 14 周(首单至产能停摆) |
| 总订单 | 561,633 | jobs 表全量 |
| 成功交付 | 558,920 | 交付率 99.5% |
| 单日峰值 | 11,507 单 | 2026-05-28 |
| 客户体量 | 1,254 账户(456 主账号) | 关停日存量 |
| 模板库 | 125 个模板 | 118 AE 工程 + 4 直出视频等 |
| 点数流水 | 564,231 笔 | quota_ledger 全量 |
| 渲染集群 | 45 渲染机 + 6 TTS 机 | 租用,2026-06-03 全部离线 |
3. 停摆时间线
| 时间 | 事件 |
|---|---|
| 2026-02-26 | 第一笔订单,业务上线 |
| 2026-06-01 ~ 06-02 | 最后的正常运营日:管理员照常开户、充点,单日仍有新客 |
| 2026-06-03 凌晨 | 不可抗力停摆:45 台渲染机心跳、TTS、成片交付同时终止,此后再未恢复。当天下午管理员 hg / dz 登录后台查看 |
| 2026-06-03 ~ 07-05 | 「半死」状态:服务端与客户端收单入口仍在运行,客户持续提交订单(每天 2~15 单)但无产能渲染,累计堆积 1,380 单 |
| 2026-07-04 / 07-06 | 超管 admin 登录后台;07-06 物理删除 ll / dz / hg 三个内部账户(本人操作,已确认) |
| 2026-07-06 12:47 | 正式关停:wht-new-api 收单服务停止并禁用自启,客户端入口关闭。管理后台暂留(点数负债处理期间使用) |
4. 管理员操作审计
审计主数据源是数据库内两张表:sys_logs(近 7 天)+ sys_logs_archive(7 天前全部历史,2026-02-28 起共 4,906 条),已随数据库全量备份一并留存。近 60 天管理员写操作的分布:
| 操作类型 | 次数 | 最后一次 |
|---|---|---|
| 登录管理后台 | 312 | 2026-07-06 11:45(admin) |
| 财务充扣(critical) | 269 | 2026-06-02 13:52 |
| 开通新子客户 / 主客户(critical) | 268 | 2026-06-02 09:42 |
| 重置密码踢下线 | 71 | 2026-06-02 17:01 |
| 修改可见标签 / 模板操作 / 节点维护等 | ~100 | 2026-05-31 |
| 物理删除账户(critical) | 3 | 2026-07-06 11:58(删 ll / dz / hg,本人操作) |
- 后台登录不记录来源 IP——sys_logs 无 IP 字段,admin_web 也没开请求日志。哪次登录来自哪里,系统层面无法追溯。
- 纯浏览不留痕——管理员登录后查订单、看报表、导出数据均无记录;审计只覆盖写操作。
- 被物理删除账户的关联数据随删除即时销毁,只存在于删除时点之前的数据库备份中(云端自动备份保留窗口约 7 天)。
其余留痕位置:quota_ledger(每笔点数变动,可与「财务充扣」交叉核对)、bk_edit_log(记账模块编辑史)、client_messages(管理员发的客户提醒)、服务器 logs/ 下的 NSSM 服务日志、Windows 安全事件日志(服务器本身的 RDP/SSH 登录)。以上全部包含在数据库备份或服务器磁盘内。
5. 系统最终状态(2026-07-06 关停时点)
| 项目 | 状态 |
|---|---|
| wht-new-api(:5000 收单) | 已停止 + 禁用自启(12:47) |
| wht-admin-web(:8888 后台) | 运行中,留给点数负债处理,服务器关停时一并下线 |
| 堆积未渲染订单 | 792 单等渲染 + 588 单等 TTS(6-3 后提交,客户已扣点、永不交付) |
| 点数负债 | 由专人线下处理(数据在备份的 user_quota / quota_ledger 表) |
| 渲染 / TTS 集群 | 54 节点全部离线(最后心跳 2026-06-03 00:57) |
| 交付桶 video-1406214096 | 已被 1 天生命周期规则自动清空(0 对象) |
| 模板桶 templates-1406214096 | 638 对象 / 29.27 GB,对象清单已存档,桶按计划删除 |
| 数据库 main_db | 24 张表 / 约 1.7 GB,业务数据完整,已全量备份 |
6. 备份产物清单
备份目录:Mac ~/Backups/wanhuatong-final-20260706/
| 文件 | 内容 | 校验 |
|---|---|---|
main_db_final_20260706.sql.gz | main_db 全量导出(mysqldump --single-transaction,含表结构 / 数据 / 触发器),101 MB | MD5 c9deab63b9cf79f762c8cd896e04572d;gzip 完整性通过;24/24 张表逐表行数与线上精确一致(含 383 万行 job_events) |
rowcounts_live.txt | 导出时点线上全表行数基准 | — |
templates_bucket_inventory.tsv | 模板桶删除前的全部 638 个对象清单(大小 / 修改时间 / key) | — |
任何 MySQL 8.x:gzcat main_db_final_20260706.sql.gz | mysql -u root -p 新库名。代码全量在 GitHub 私有仓库(服务器版与 git 一直保持同步),配合此备份可完整复原系统。
7. 基础设施与费用
| 资源 | 规格 / 状态 | 到期 / 费用 |
|---|---|---|
| 生产服务器(上海轻量 · Windows) | 49.234.180.69 · 4G 内存 · C 盘余 34 GB · 4-21 起连续运行 | 2026-07-25 到期 |
| 轻量数据库(内网 10.0.0.4) | MySQL 8.0.30 · 运行中 | 约 ¥43/月 |
| 北京 relay 服务器(Ubuntu) | 82.156.120.246 · 其他业务在用 | 2026-07-28 到期 |
| 腾讯云账户余额 | ¥310.44(月消耗约 ¥160:服务器 ¥117 + 数据库 ¥43 + COS 不到 ¥1) | |
生产服务器上还跑着 baodan 报单中心(:80,活业务)和 order_system(:5001);轻量数据库里还有 baodan_db 和 order_db。7-25 服务器到期前必须先决定 baodan 的去向(迁移或一并下线),到期不续费会连带杀掉它们。
8. 关停清单
已完成(2026-07-06)
- ✔ 停止并禁用 wht-new-api 收单服务(5000 端口已关,baodan / order 不受影响)
- ✔ main_db 全量备份 + 双重验证(gzip 完整性 + 24 表行数精确比对)
- ✔ 模板桶对象清单存档(删除前留证)
- ✔ 服务器状态 + 腾讯云余额 / 资源到期盘点
- ✔ 删除模板桶 templates-1406214096(29.27 GB)
待办(按时间紧迫度排序)
- 7-25 前决定 baodan 去向——迁走或一并关停,别让服务器到期误杀活业务
- 点数负债处理完成后,停掉 wht-admin-web,服务器到期不续费(或提前销毁)
- 轮换数据库 root 密码与 COS 密钥——明文残留在 6 台外部 TTS 租用机磁盘和 git 历史中;注意 template_cos 密钥若被其他项目复用需先排查
- 45 台渲染机 + 6 台 TTS 机停租,归还前清理磁盘上的 worker EXE、配置与密钥
- 企微告警机器人 webhook 停用
- 备份异地冗余:把
~/Backups/wanhuatong-final-20260706/再复制一份到异地(COS 归档 / GCS / 移动硬盘任选)
万花筒 · 2026-02-26 ~ 2026-07-06 · 561,633 单 · 交付率 99.5%