Skip to content

Latest commit

 

History

History
49 lines (31 loc) · 2 KB

File metadata and controls

49 lines (31 loc) · 2 KB
title 批量生成收据
description 从快速开始的内存业务实现,过渡到可跨进程恢复的持久收据示例。

批量生成收据

本示例贯穿整个文档:给一份订单快照生成收据,并在全部处理完成后发送完成通知。

快速开始使用当前进程里的 Map 存放业务数据,便于第一次理解 API。完整示例会把业务快照、回执和完成通知也保存到 Redis 的独立业务 key 中,用来验证进程退出后的恢复。

已有入门文件

持久恢复文件

两层边界

层级 说明 证明什么
快速开始 单进程、业务 Map、真实 Queuebit Redis API 顺序、分页、提交去重、回调观察
持久恢复示例 业务 Redis key、可重启 worker、恢复控制器 外部写成功但进度未确认时,重启后不重复写错

业务幂等键

收据键由 snapshotId 和 receiptId 组成。同一订单生成同一张收据;重复执行时比较已有内容,内容一致则视为安全重放,不一致则报业务幂等冲突。

完成通知使用独立 completion key。Run 成功和通知送达仍要分别核对。

恢复窗口

恢复示例会让第一个 worker 在首条收据写入成功后退出,此时 Queuebit 还没有收到 ctx.next()。等待租约恢复后,第二个 worker 用同一个 namespace、任务定义和 runId 继续处理。第一条收据会被再次尝试写入,但因为业务键和内容一致,只计为安全重放。