【惊心动魄】短信重复事故

两次事故原因:
  • 第一次:本地调试时发出,发送短信的接口需要传一个接收者账户和接收者手机号码,在调试的时候我把接受者手机号码填自己的,然后接受者账户是真实的账户。在调试期间,去讨论别的问题了,我自己收到多条短信的同时,那些接受者账户也收到多条短信。短信接口会按着账户去查手机号码,如果接收者账户和接收者手机号码不一样,就会有两个人收到短信。
  • 第二次:默认触发器是24小时触发一次,但为了调试触发是否正常以及其他逻辑是否正确,我把间隔时间设置成了5秒。部署前代码改回来了,但是未编译,所以部署的代码还是间隔5秒。应该是早上9点半触发,为什么会每隔5秒触发?第一次的间隔时间比较特别,与部署时间相关。假设第一次触发的间隔时间也是24小时,假设我们下午5点半部署,那么下次触发时明天5点半,这样不满足早上9点半触发的要求。所以第一次的触发时间需要矫正,即第一次的间隔时间是:触发器初始化的时间与明天早上9点半之间的时间长度,明天早上触发后再自动把触发时间更改为24小时。

 

ps:第一次8位内勤,第二次6位内勤。第一次间隔3秒,第二次间隔5秒。每次持续大概10分钟后收到反馈,然后停止服务。两次初略估计发送(10*60/3)*8+(10*60/5)*6=2320条重复短信。

启发:应有自动检测故障功能,假设10分钟内发现3条内容和接受者一样的短信发送请求,短信平台应予以不接受请求。

 

posted @ 2014-09-11 10:09  二师弟tl  阅读(361)  评论(0编辑  收藏  举报