2.1 KiB
2.1 KiB
09 — 承接手动轮询状态并记录同步外部尝试
What to build: 现有手动触发、进度和监控接口保持用户契约,但运行状态由公共异步任务契约承接;Gateway 实际请求及合并、互斥、限频、提前完成等未发送尝试进入 Integration Log,只有状态变化、人工强制、连续失败或高风险异常进入 Audit Event。
Blocked by:
- 01 — 交付不可变 Audit Event 写入闭环
- 02 — 交付可恢复的 Integration Log 尝试闭环
.scratch/tech-public-foundation/issues/02-transactional-public-outbox-write.md— 02 — 在业务事务中可靠写入公共 Outbox.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 — 冻结统一异步任务五态和查询契约
Status: ready-for-agent
架构通道: 主通道为 Application + Infrastructure,辅助通道为 Query。
完整业务边界: 本票收口旧手动轮询日志承担的运行状态替代、外部尝试记录和兼容接口。明确不改变轮询配置、间隔、Redis 分片队列、任务类型、卡级开关、并发控制或失败重排,不新建同步专用运行表。
- 手动触发、进度与监控公开契约继续可用,状态、计数、失败摘要和恢复行为映射到公共异步任务五态。
- 实际 Gateway 请求在调用前建立 Integration Log,完成后记录结果、耗时、状态变化和脱敏上游摘要。
- 合并、互斥、限频、已达预期和取消即使未产生 HTTP 请求也有可解释终态,不伪造 HTTP 状态。
- 同步序列传播
request_id/correlation_id/series_id/attempt;同序列查询可连续看到立即、3 分钟、5 分钟的全部尝试。 - 普通无变化成功只写 Integration Log;状态变化、人工强制、连续失败或高风险异常按注册规则关联 Audit Event。
- 回归测试固定现有轮询配置、队列、开关和监控基线,验证切换前后调度事实不变且旧手动轮询表不再承担新增运行状态。