锁与事务同时使用

锁写在包含事务的方法里,如果在事务结束之前,提前释放锁,如果释放锁之后的代码抛出异常,则会出现数据不一致的情况。
应该
try{}
catch{}
finally{
    //释放锁
}
场景:业务员快速扫码获取成长值,如果没有正确处理事务与锁的关系,最后会导致成长值总和和成长值明细不一致的情况。


成长值升级
1.查询是否存在成长值任务 taskId
	不能taskeventid不能重复(该会员成长任务值已添加,重复提交请求)
2.判断周期内最多可以执行多少次任务
3.查询会员信息、会员体系
4.计算成长值(固定成长值和非固定成长值)
5.插入成长值流水
6.根据成长值去Grade表查询等级
7.如果新的成长值和成长等级和老的成长值和成长等级不同,则
  失效原来成长值流水记录
  插入新的成长值流水记录
  否则:只更新members表的成长值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值