定时短信总是重发,反反复复半个月试了很多种方案:
方案一
思路
检查逻辑,查看是否是因为一个用户报了同一学校不同分校的topic,获取到重复的userid,从而得到了相同的mobile,需要对手机号去重
操作
if(!strMobile.contains(userTopicInfoVoList.get(mobiles).getMobile())){
mobile.append(userTopicInfoVoList.get(mobiles).getMobile())
.append(",");
}
结果
重发
方案二
思路
查看是否是因为quartz的间隔时间太短,导致一次遍历还没完成,还没有更新if_sms未已发送,下一次quartz又来了,又会查出来上次的内容
操作
增加quartz间隔
结果
重发

本文介绍了在使用sms和quartz进行短信发送时遇到的重发问题,尝试了五种解决方案:检查用户手机号去重、调整quartz执行间隔、防止quartz在同一时间点重复执行、解决并发线程问题以及避免tomcat加载工程文件导致的双倍执行。然而,前四种方法仍未能解决问题,最后一种方法成功避免了短信重发。
最低0.47元/天 解锁文章

4328





