docs: 记录WPS异步解析测试发布

This commit is contained in:
hectorzhao
2026-09-04 23:25:57 +08:00
parent 5925cf493b
commit 65082959c0
+6 -2
View File
@@ -4491,11 +4491,15 @@ git diff --check
- 一条富泷供应商通道在重启后首次鉴权失败,连接短暂为`8/9`,系统按既有计划于21:20:25自动重试并恢复`9/9`,未修改通道配置或凭据。真实下游客户端受旧心跳租约影响的重复连接被连接数门禁拒绝,并记录3次既有`close of closed channel`连接协程panic;Gateway进程未退出、下游心跳持续、systemd error级journal为0,该已知重启恢复缺陷不由本次报备功能引入,继续保留专项治理。
- 浏览器控制在读取预生产运营登录页时连续两次超时,因此本轮没有取得可复核的DOM、截图或控制台证据,也未输入账号、密码或验证码;只把真实HTTP、资源哈希和服务端证据记为通过,不将其冒充登录后浏览器验收。
## 2026-09-04 大文件WPS报备异步解析与真实进度(本地验证完成)
## 2026-09-04 大文件WPS报备异步解析与真实进度(测试环境发布完成)
- 40MB以上WPS文件同步解析会让单个HTTP请求同时承担上传、两轮ZIP/图片展开和ExcelJS解析,预生产证据已出现约126秒后由入口断开的499;单纯展示前端动画进度不能延长代理读超时。本轮将接口改为文件入MinIO并创建PostgreSQL任务后返回202,由独立`cmpp-report-material-worker`单并发解析,页面轮询租户隔离的真实任务状态。
- 新增`queued/analyzing/analyzed/failed`状态、0–100进度、阶段、错误、开始和心跳时间;Worker启动时将心跳超过5分钟的解析任务恢复为排队状态,领取时使用状态条件更新防止重复占用。该变更新增1项Prisma migration和1个systemd服务,发布时必须同时迁移数据库、安装并验证Worker,不涉及短信队列、通道、余额或客户配置。
- 报备导入使用独立100MiB上限,普通文件仍为10MiB、图片仍为2MiB。文件类型、扩展名和ZIP签名在入库前校验;工作簿公式、外部对象、解压体积、图片格式及图片数量关系在后台解析或提交阶段明确失败,不静默吞错。
- 分析阶段读取WPS`cellimages.xml`关系、单元格位置、扩展名和ZIP声明大小,不展开图片Buffer,并在交给ExcelJS前从临时解析副本剥离WPS媒体;提交导入时仍重新下载原文件并完整读取、签名校验和上传图片,没有放宽DISPIMG白名单或20MiB单图/300MiB图片总量限制。
- 真实样本`行业报备.xlsx`仍得到工作表“行业”、17行、13列和43张图片。相同进程环境下原完整图片模式约5522ms/RSS 259MiB,新分析模式约1899ms/RSS 227MiB,耗时下降约66%,结果计数一致;样本只读,未覆盖或写回。
- 定向API 3套25项、API全量54套616项、前端全量13文件64项通过;前后端TypeScript、API/Vite生产构建、依赖与安全门禁、部署契约、结构质量、入口包体积和`git diff --check`通过。测试环境部署及真实HTTP/MinIO/PostgreSQL/浏览器验收将在本提交推送后执行,预生产不在本轮范围内。
- 定向API 3套25项、API全量54套616项、前端全量13文件64项通过;前后端TypeScript、API/Vite生产构建、依赖与安全门禁、部署契约、结构质量、入口包体积和`git diff --check`通过。
- 功能提交`5925cf493bc83bdeaeeb2a79cb6b8026db5d5772`已推送至`origin/main`并发布测试环境。发布前标记为`41962e7a6e6cfd34b4313c8bf52d9345d37d8e10`;恢复点为`/opt/cmpp-platform-backups/wps-async-20260904T145510Z-before-5925cf4`,约674MiB,包含PostgreSQL custom dump、Redis RDB、原运行目录、配置、发布包和基线证据,数据库清单、tar可读性及SHA-256均通过。上一运行目录保留为`/opt/cmpp-platform.previous-wps-async-41962e7-20260904T1500Z`
- 新migration已执行,测试环境由95项增至96项;`cmpp-report-material-worker`已安装并保持`active/running``NRestarts=0``Result=success`。API、Gateway、其他Worker、Nginx、PostgreSQL、Redis、MinIO和Prometheus均正常,发布窗口API及新Worker无error级journal;三条短信相关Redis Stream发布前后均为`pending=0 / lag=0`,没有发送、补发、重投或重新入队短信。
- 真实HTTP上传20,976,525字节的`行业报备.xlsx`在约0.32秒内返回`202 / queued / 10%`,独立Worker随后完成解析并持久化`analyzed / 100% / 解析完成`,结果为13列、16条数据行、43张图片;错误租户查询返回404。将同一任务模拟为UTC口径的超时心跳后重启Worker,任务从70%恢复并重新完成到100%,验证了中断恢复。
- 真实Chrome页面从企业签名管理发起同一WPS文件上传,网络证据为`202 queued 10%`后轮询至`200 analyzed 100%`,映射弹窗显示13列和合计43张图片;1600×1000桌面端及390×844窄屏均无页面级横向溢出,浏览器控制台无warning/error。浏览器会话关闭后,临时管理员已从数据库删除且剩余数为0;验收任务和对应`FileObject`保留为可追溯测试证据。预生产本轮未访问或修改。