60 lines
2.4 KiB
Markdown
60 lines
2.4 KiB
Markdown
# 2026-07-23 真实建单复盘与极速优化
|
||
|
||
## 测试结论
|
||
|
||
标准 + 快轨均可建到「待开发」交棒;交付树、标签「故障管理」、快轨无【分析】均正确。
|
||
|
||
| 轮次 | 编号 |
|
||
|---|---|
|
||
| 第一轮(探测+UI) | ONEOS-141~147 |
|
||
| 极速 v1 | ONEOS-148~154 |
|
||
| 极速 v2 | ONEOS-164~177(含中间探针) |
|
||
|
||
## 过程问题(已修)
|
||
|
||
| # | 问题 | 根因 | 修复 |
|
||
|---|---|---|---|
|
||
| 1 | 状态改不动 / 假成功 | 误用 `updateStatus`;UI 点列表区 | `POST …/status/transit` |
|
||
| 2 | 负责人改不成 | `updateFieldValue` 错 | `PATCH …/{id}` + `assignedTo` |
|
||
| 3 | 状态 ID 不全 | 未抓网络 | 写入 `runtime-ids.json` |
|
||
| 4 | 极慢 | Playwright + 串行探测 | 纯 HTTP + 并行 |
|
||
| 5 | v1 仍偏慢 | 多余 GET、串行 PATCH 计划、交棒再改负责人 | 见下节 v2 |
|
||
|
||
## 性能对比
|
||
|
||
| 口径 | 优化前(第一轮) | 极速 v1 | 极速 v2(本轮) |
|
||
|---|---|---|---|
|
||
| 会话墙钟 | ≈ **17.9 分钟** | — | — |
|
||
| 两路径并行建单墙钟 | ≈4.1 分钟自动化 | **4.4 s** | **2.2 s** |
|
||
| 标准单路径 | 失败反复 | 3.7 s | **2.2 s** |
|
||
| 快轨单路径 | 失败反复 | 3.7 s | **2.1 s** |
|
||
| 浏览器 | 多次 | 无 | 无 |
|
||
|
||
相对第一轮会话 ≈ **490×**;相对 v1 再快约 **2×**。
|
||
|
||
## v2 压榨点(已落地)
|
||
|
||
1. `status/transit` **本地追踪** `fromStatus`,跳过每次 GET。
|
||
2. 建单 `fieldValueList` 带**计划开始(79)**;计划完成不在 create 写(同日会 400)。
|
||
3. 【交付】创建时负责人直接 **何斐**(省 PATCH)。
|
||
4. `requests.Session` keep-alive;**去掉全局锁**(否则并行失效)。
|
||
5. 打标签与建子任务 **重叠**;两路径并行。
|
||
6. 交棒后汇总用创建响应,校验 GET 移出主路径计时。
|
||
|
||
## 探针结论(未采用)
|
||
|
||
| 尝试 | 结果 |
|
||
|---|---|
|
||
| create `fieldValueList` 带 tag | 建单成功但标签不落库 → 仍须 PATCH |
|
||
| create 同时写 79+80 | `400 计划…转化异常` |
|
||
| urllib 全局 lock + 单 opener | 并行被串行化,单路径 ≈4 s |
|
||
|
||
## 仍可再压(收益变小)
|
||
|
||
1. 标签 API 若将来支持 create 落库,可再少 2~4 次 PATCH。
|
||
2. HTTP/2 或连接预热(DNS/TLS 复用到进程级)。
|
||
3. 业务允许「建单即待开发」且平台支持初始状态 → 少 2 次 transit。
|
||
4. 计划完成改为交棒后异步补写(当前故意跳过)。
|
||
|
||
脚本:`scripts/live_create_fast.py`(mode=`live_create_fast_v2`)。
|