Files
junhong_cmp_fiber/.scratch/ur94-card-state-events-callbacks/issues/06-observation-series-loop.md
break 208cb19f0e
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m52s
ur94 issues
2026-07-22 16:44:01 +09:00

2.4 KiB
Raw Blame History

06 — 交付可合并的 0/3/5 观测序列

What to build: 内部业务调用方可以为资源和同步类型建立立即、3 分钟、5 分钟三次独立观测任务。序列按场景合并、按尝试幂等,单次失败不取消后续任务;达到明确预期时提前完成剩余尝试,实际 Gateway 请求仍通过公共观测边界应用结果。

Blocked by:

  • 02 — 交付实名观测的公共写入闭环
  • 03 — 交付流量观测的公共写入闭环
  • 04 — 交付网络观测的公共写入闭环
  • .scratch/tech-public-foundation/issues/03-outbox-at-least-once-delivery.md — 03 — 完成 Outbox 到 Asynq 的至少一次投递闭环
  • .scratch/tech-public-foundation/issues/06-unified-async-task-contract.md — 06 — 冻结统一异步任务五态和查询契约
  • .scratch/tech-global-audit/issues/02-integration-log-attempt-loop.md — 02 — 交付可恢复的 Integration Log 尝试闭环

Status: ready-for-agent

架构通道: Application + Port/Adapter辅助通道为 Infrastructure。

完整业务边界: 本票收口通用观测序列的创建、合并、任务执行、预期判断、互斥和尝试留痕,并为实名、流量、网络及设备信息提供扩展点。明确不批量修改各业务入口,不新增公开同步 API、全局冷却或新的同步运行表。

  • 一次触发恰好建立立即、3 分钟、5 分钟三次独立任务,三次任务均为零自动重试,载荷以 struct 或 map 入队并传播稳定 series_id + attempt
  • 同一场景、资源类型、资源 ID 和同步类型的未结束序列被合并不同场景互不压制OpenAPI 场景不包含调用方身份且不会因重复查询延长序列。
  • 有明确预期时任务执行前读取本地快照,达到预期后把当前和剩余尝试标记完成且不访问 Gateway回调确认实名后可提前完成同卡实名序列。
  • 实际 Gateway 请求期间按单卡、运营商接入和同步类型互斥,流量复用卡级锁;互斥命中只跳过当前尝试,不取消后续任务。
  • 合并、互斥、限频、提前完成和实际请求均写 Integration Log超频不建立额外退避事件任务失败不改变现有轮询重排。
  • 并发及链路测试覆盖重复触发、不同场景、重复投递、单次失败、预期提前完成、互斥、限频、零重试和三次结果连续可查询。