时间:2021-07-01 10:21:17 帮助过:5人阅读
如题,php商城
现在我采用的方法用户下单之后冻结所下单商品,冻结时间15分钟,现在的问题是如何将过期未支付的订单商品解冻出来。
我可以写一个解冻程序,但是问题是这个程序何时触发呢?因为这个解冻程序肯定要锁表查询,如果全站任何有库存量的地方都触发的话,会不会造成数据库负担过大啊?
1:操作的时机可以在用户访问某个具体商品页面的时候去判断是否有需要解冻的商品存在;还可以是在用户支付的时候去判断该笔是否是在15分钟有效期以及该笔订单对应的商品是否有需要解冻的订单存在,过期时间是不是结合memcache比较合适。
2:计划任务(一般在访问量较少的时候执行),但肯定不是任何有库存的商品/地方,应该是有人购买的商品。
3:如果需要解冻的太多的话是不是可以考虑使用redis, key就是订单ID,value就是过期时间等等。定期的去跑这里面的订单就可以
坐等高手~
尝试添加一个字段表该产品已经被冻结同时保存解冻时间,在进行操作的时候都要考虑这个字段,这样子应该可以吧...