朋友问我如何设计一个短信发送的计费逻辑,要避免并发,系统异常重启,短信平台故障等现实存在的各种情况下的计费错误问题,经验不足,求帮助,这是初步想法:
数据表:
逻辑: 以下每个逻辑都请使用事务操作
当发送短信后,增加一条发送记录
当短信成功后,编辑发送记录,状态标记为发送成功,然后(更新短信数的表,成功后更新计费状态,如果失败, 尝试三次,如果还是失败就放弃,标记计费失败)
定时监测发送状态成功的,计费状态为失败的并且时间超过 30 分钟的短信记录,补一刀
但感觉还是有很多问题,比如,短信发送了,创建记录失败,回滚有毛用,短信已经发送了 另外想到 redis 的 INCR,是不是作为剩余数量就完美解决了该问题? 求各位支招
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.