有关批处理发送短信问题【重要】

如果分页发送短信:

查询时,根据发送状态选取,发送成功后,修改状态,存在bug:

因为修改了状态,相当于总数减少了,

会导致下次循环时,漏掉数据

建议:每个一段时间发送100条,直到为空结束

 

不再使用分页处理,可以使用while循环,每次取100条发送,直到取不到数据时结束循环;

 

 

 

解释下这个分页的bug:

 对于只读数据,完全可以这样分页批处理,是没问题的;

但是遇到这个场景就不对了,批处理时根据某个字段筛选(如短信发送状态:未发送),处理后又修改了这个字段(如短信发送状态:已经发送),

实际上导致符合条件的总数减少了,那么取第二页数据时,就会漏掉复合条件的数据(可能跑到第一页了);

 

测试环境之所以没有出现这个问题,是因为测试环境每个1分钟执行,漏掉的数据在下个定时任务会处理的;

生产环境只有10,15点执行,所以上午10点漏掉的数据,被下午15点的任务处理了(仍有遗漏数据),才出现这个现象;

这个是我未考虑的的,你也记下,防止以后出现类似的问题,

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值