免费试听课 · 无需注册
约4分钟 · 浏览器中运行真实Python
为什么重试支付是 危险的 ——以及修复它的一行代码。
01关键点
客户在结账时连接中断,所以他们的应用悄悄 重试扣款 —三次。你天真的代码运行了三次。客户被收取了 3× 一笔订单的费用,现在这是你凌晨3点的警报。这个确切的bug已经让真实公司损失了真金白银。让我们让它不可能发生。
02心智模型
幂等性:相同请求,相同效果——无论执行多少次。
一个操作是 幂等 做一次和做十次结果相同。诀窍:给每个请求一个唯一的 键,记住处理过的键,让重复的键无效。重试就变得安全。
03查看
没有键——每次重试都会收费
客户端
重试 ×3
收费3有幂等键——重试无效
客户端
重试 ×3
幂等键收费104轮到你了——修复它
这是有问题的 charge()。运行它——会收费三次。然后添加保护,让重复的键不起作用,再运行一次。真实的 Python,就在这里运行。
05证明它——不是空谈
绿色表示 3次重试 → 1次收费. 你不是读了幂等性——你实现了它,并且检查确认了。这就是每节 Sage 课程:心智模型、图表,以及怀疑者可以运行的证明。没有自评测验,没有“我觉得我懂了。”