如何设置(购物车或待支付账单)倒计时30分钟,数据库数据减少不?

这实现起来方法很多,下面仅提供思路:

  1. 前台加后台,在创建订单时,添加额外字段,记录订单的创建时间。当用户进入此订单页面时就显示倒计时。前端获取当前时间,然后减去订单的创建时间,如果大于30分钟就取消订单,取消订单就修改商品的库存和销量; 如果没有超时就继续倒计时。

  2. 可以使用定时任务crontab,在创建订单时就生成一个定时任务,设定为30分钟后用户未支付就取消订单,取消订单就把商品的库存和销量做相应的修改。
    上面2中方案没有考虑取消订单后商品的回库。

  3. 使用celery异步任务实现。在生成订单时同时调用celery的countdown函数,只要传入30分钟的时间,时间到了订单未支付,就取消订单。把异步任务和事务搭配使用,没有修改库存成功就回滚事务。

你可能感兴趣的:(网络编程)