怎么优化退差价时需要执行大量 SQL 的情况?
假设有以下情况,有一个虚拟商品A,订阅价格 100 元/月,
按照规则,如果商品降价,则系统需要自动退还本月差价,
退差价的逻辑是,将本月的付款退款,然后重新按新的价格扣款,
那么,假设此时有 100 个用户订阅了此商品,商品降价一次,则需要分别执行退款和重新扣除的sql,大约 300 条sql来处理订阅者的退款数据,执行 300 条 SQL 需要耗费大量时间
有没有办法优化这种情况?
回复
1个回答
test
2024-06-25
感觉把款项退回去,但是未经用户同意再自动扣款,从用户角度来说,体验感不好。如果我是用户,我比较能够接受的是:降价的时候退回我差价。
以退差价为目的,在商品调低价格进行确认的时候,批量生成定时退差价任务:某商品确认降价时,获取该商品当前已订阅客户信息,生成退差价定时任务,在业务低峰期执行。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容