更新账户余额,并且记录流水变动,大致逻辑如下:
##### 1、查询原有余额
`原有余额` = select `余额` from `账户表` where uid = 1;
##### 2、更新余额
`更新数量where uid = 1 and `余额` = `原有余额`
##### 3、记录流水
insert into `流水表` values(uid, `原有余额`, `变化金额`, `现有余额`)
当第二步的更新数量为0时,表示扣费失败,会抛异常并回滚
现在问题是,当同一个用户并发更新余额失败时,怎么加重试机制?业务里同一个用户可以有多个附属账号同时操作扣费这个用户余额,所以是有这种场景的
非webman的话,可能是整个流程加个重试次数,每次失败sleep一下然后重试
现在用webman,这种问题有什么好的解决办法么