两件互不依赖的事,谁先完成都行
来源:dev.to — 2026-10-24
📋 概述
状态机系列第六篇。前一篇里订单已经能在等承运商回执时不假装箱已发运,这一篇的新要求是:继续之前必须同时拿到承运商结果和库存结果,而这两件事完成的先后顺序不确定。作者先给出最小方案——顺序执行,承运商拒了就压根不查库存;接着指出这等于把业务里不存在的依赖强加到实现上,业务要求的其实是两者都成功,没有任何一方必须先完成。他还把「查库存」与「占库存」拆开,先只做两个只读检查,避免在建立协调规则时偷偷引入外部变更。
🔑 核心要点
- 业务只要求两者都成功,没有任何一方必须先完成
- 顺序执行把实现顺序当成了业务依赖,只在第二件事依赖第一件时才成立
- 先做两个只读检查,把查库存与占库存彻底分开
- 并发不是默认答案:省请求比并行更值钱时,顺序执行仍然是对的
💡 金句
“Both must finish successfully. Neither must finish first.”
译:两者都必须成功完成,但没有哪一方必须先完成。
← 返回 dev.to 首页