就像自动扣款的场景,每天定时执行自动扣费任务,偶尔会碰到用户在同一时间去手动缴费,由于扣款业务链路比较长,也没有事务,很容易造成重复扣费,目前处理方法是两边设置一个相同 key 的 redis 锁,执行的时候检测是否存在锁,如果存在说明某个流程开始处理了,另外一个流程就跳过不处理。 请教大家有什么好的处理方式解决这个问题吗 😂
1
shoaly 2019-08-29 21:26:46 +08:00
每天到点 关闭用户手动充值功能, 提示系统维护
|
2
wingoo 2019-08-29 21:35:23 +08:00
基本是这样处理, 做用户锁, 而不要做自动扣款的大锁
前端展示上也可以做些优化 |
3
boob 2019-08-30 12:30:42 +08:00 via Android
我先问个,如果用户手动缴费 2 次,如何? 一般思路都是每天缴费成功有个标志,最后扣款前看标志, 不管你自动还是手动,都不会重复扣费
|