求助逻辑设计:如何设计一个短信发送的计费逻辑

2019-03-13 13:36:46 +08:00
 zzg

朋友问我如何设计一个短信发送的计费逻辑,要避免并发,系统异常重启,短信平台故障等现实存在的各种情况下的计费错误问题,经验不足,求帮助,这是初步想法:

数据表:

  1. 有个短信数的表,记录剩余数量等,更新操作的时候用乐观锁
  2. 有个短信发送记录表,里面除了发送记录,还要有个是否发送状态和计费的状态

逻辑: 以下每个逻辑都请使用事务操作

  1. 当发送短信后,增加一条发送记录

  2. 当短信成功后,编辑发送记录,状态标记为发送成功,然后(更新短信数的表,成功后更新计费状态,如果失败, 尝试三次,如果还是失败就放弃,标记计费失败)

  3. 定时监测发送状态成功的,计费状态为失败的并且时间超过 30 分钟的短信记录,补一刀

但感觉还是有很多问题,比如,短信发送了,创建记录失败,回滚有毛用,短信已经发送了 另外想到 redis 的 INCR,是不是作为剩余数量就完美解决了该问题? 求各位支招

1235 次点击
所在节点   2019
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/544111

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX