Skip to main content

配置改了,旧文件还在撒谎:用指纹驱动重建

紧凑配置指纹写入产物元数据,清单差分后复用或重建,并用版本锁控制并发。

这不是「加个 cache key」。完整链路是:紧凑指纹写入产物元数据 + 工作表清单差分 + 可复用则复用 + 并发用版本锁重试 + 失败保留旧产物。

机制步骤

  1. 按租户/用户/模块/条件加载当前成功产物(地址、修订号、配置指纹、工作表清单)
  2. 用表偏好、包络类偏好等拼成紧凑指纹;旧版非紧凑格式视为已变
  3. 与期望清单比,算出要重建的表
  4. 指纹一致且无变更且已有成功地址 → 直接复用(打复用日志)
  5. 否则构建:标记构建中,版本锁 CAS 重试,成功后提升修订号/地址/指纹
  6. 首次叠加且偏好非默认:不走同步重算(防网关超时),先叠加重建 + 进度
  7. 预导出按指纹失效并重建;失败则保留旧缓存
  8. 任务级请求指纹:相同进行中请求不重复堆任务

验收怎么定

验收标准应是「导出文件是否带上正确配置」(例如只改某一类包络、其它仍默认),而不是「配置页保存成功」。

也曾出现「选过一次后整批一直沿用」——作用域/过期问题,正是指纹要管的。旧文件看起来还在,其实已经在撒谎。

可复用的落点

  1. 影响输出的输入必须编进指纹并落在产物上。
  2. 复用与重建要可观测。
  3. 贵重产物重建需要并发控制(版本锁)。