说明:
1、建立一张库存记录锁定表(或者优惠券记录锁定表)。
2、如果客户下订单后长时间未支付,则使用延迟队列来关闭订单,时间为10分钟,同时关闭订单时未防止调用第三方支付发生异常,需要向第三方支付查询订单状态,如果未支付,则关闭订单。
3、下单后调用其他服务,比如库存服务去扣减库存,先将库存插入库存记录锁定表,状态为锁定,接着使用延迟队列,20分钟后去调用库存锁定恢复服务,这时有两步操作,(1)如果是支付成功,则更新锁定记录为成功。(2)如果是订单关闭或者不存在,则更新锁定记录为取消状态。
4、设置检测平台,一小时执行一次,分别定时检测订单状态和库存锁定状态,如果订单一直未支付,或者库存锁定状态一直为lock,则继续调用关单逻辑关单或者库存锁定恢复服务释放库存。这样可以防止发送延迟队列产生异常造成无法关单或者无法释放库存的问题。













网友评论