Date: 10/22/2026Category: GoWind风行Tag: Golang, GoWind, 电商, 订单系统
本文回答一个问题:用户下单后 30 分钟没付款,系统要收回什么、按什么顺序收、怎么防重防并发?"超时关单"这个电商标配功能,值得写 450 行吗?
GoWind Shop 的未支付订单 30 分钟自动过期(ExpireOrderByTimeout,约 150 行核心逻辑),是全仓库把"事务边界设计"体现得最完整的一条链路:释放库存、状态推进、孤儿支付清理、优惠券返还四件事在一个数据库事务里完成,外层有延迟任务的投递去重与幂等闸门。拆它之前先看它的对照面——下单事务,因为超时收回的每一样东西,都是下单时锁定的。
