如题,php商城
现在我采用的方法用户下单之后冻结所下单商品,冻结时间15分钟,现在的问题是如何将过期未支付的订单商品解冻出来。
我可以写一个解冻程序,但是问题是这个程序何时触发呢?因为这个解冻程序肯定要锁表查询,如果全站任何有库存量的地方都触发的话,会不会造成数据库负担过大啊?
如题,php商城
现在我采用的方法用户下单之后冻结所下单商品,冻结时间15分钟,现在的问题是如何将过期未支付的订单商品解冻出来。
我可以写一个解冻程序,但是问题是这个程序何时触发呢?因为这个解冻程序肯定要锁表查询,如果全站任何有库存量的地方都触发的话,会不会造成数据库负担过大啊?
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答610 阅读✓ 已解决
799 阅读
1:操作的时机可以在用户访问某个具体商品页面的时候去判断是否有需要解冻的商品存在;还可以是在用户支付的时候去判断该笔是否是在15分钟有效期以及该笔订单对应的商品是否有需要解冻的订单存在,过期时间是不是结合memcache比较合适。
2:计划任务(一般在访问量较少的时候执行),但肯定不是任何有库存的商品/地方,应该是有人购买的商品。
3:如果需要解冻的太多的话是不是可以考虑使用redis, key就是订单ID,value就是过期时间等等。定期的去跑这里面的订单就可以