第七天业务题

7-1 介绍一下你们项目中的优惠券功能
    在我们的项目中优惠券的功能大体上可以分为,新建优惠券、发放优惠券、领取优惠券、使用优惠券
    1、新建优惠券:主要就是对优惠券数据表进行一个新增的操作
    2、发放优惠券:有立即发放:优惠券立刻生效,直接出现在用户端页面供用户领取
                   定时发放:定一个发放开始时间,时间到期后才会进入出现在用户端页面
    3、领取优惠券:手动领取:就是展示在用户端页面,由用户自己手动点击领取
                   指定发放:就是兑换码模式,后台给优惠券生成N张兑换码,由管理员发放给指定用户
    4、使用优惠券:根据优惠券指定的课程,在下单时可以抵扣金额。


7-2 你们项目中是如何防止优惠券超领的 
    在我们的项目中优惠券超领分为,多人超买、单人超领
    多人超买:出现的原因主要是:多线程并行运行、多行代码操作共享资源,但不具备原子性
    要解决这种并发问题,方案基本就是加锁,锁一般可以分为:悲观锁、乐观锁
    在我们的项目中采用的是乐观锁来解决的,在每次提交前都判断一下已领优惠券数量是否大于总优惠券数量,大于才会对表中已领优惠券数量进行修改。
    单人超领:出现的原因主要是:并发场景下,实时查询的判断逻辑会存在失效问题
    对于读的操作,我们一般都是采用悲观锁,常见的有Synchronized、Lock
    在我们的项目中使用Synchronized实现,其中锁使用用户id


7-3 事务失效的场景有哪些
    事务失效场景主要有这么几种:
    1、事务方法非public修饰
    2、非事务方法调用事务方法
    3、事务方法的异常被捕获
    4、事务异常类型不对
    5、事务传播行为不对

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值