当前位置: 首页> 汽车> 新车 > 大连全员核酸检测_哈尔滨百度推广排名优化_seo优化轻松seo优化排名_适合30岁短期培训班

大连全员核酸检测_哈尔滨百度推广排名优化_seo优化轻松seo优化排名_适合30岁短期培训班

时间:2025/7/9 6:21:40来源:https://blog.csdn.net/hang_sa_mu/article/details/143989614 浏览次数: 0次
大连全员核酸检测_哈尔滨百度推广排名优化_seo优化轻松seo优化排名_适合30岁短期培训班
@Override
public void sendCode(String phone) {// 通过正则判断手机号的合法性if (!phone.matches("^1[3-9]\\d{9}$")) {throw new RuntimeException("请输入合法的手机号");}// 判断3次// String.format("code:%s", phone)String numKey = String.format(RedisKeyEnum.KEY_CODE_NUM.getKey(), phone);// 思考题:判断10分钟三次的逻辑,在高并发情况下有问题,如何解决?lua脚本// 判断key是否存在if (RedisUtils.hasKey(numKey)) {// 自增后直接获取自增后的值Long newValue = RedisUtils.incrValue(numKey, 1L);if (newValue > 3) {throw new RuntimeException("10分钟内最多发送3次验证码,请稍后再试");}} else {// 如果key不存在,创建keyRedisUtils.setValueTimeout(numKey, 1, RedisKeyEnum.KEY_CODE_NUM.getTimeout());}// 生成验证码String code = RandomUtil.randomNumbers(4);// 将验证码存入redis,考虑类型和key值String key = String.format(RedisKeyEnum.KEY_CODE.getKey(), phone);RedisUtils.setValueTimeout(key, code, RedisKeyEnum.KEY_CODE.getTimeout());// 异步发送短信(线程、mq)threadPoolExecutor.execute(() -> {// 发送短信AliSmsUtils.sendSms(SmsEnum.SMS_CODE.getSignName(),SmsEnum.SMS_CODE.getTemplateCode(),phone, code);});}
关键字:大连全员核酸检测_哈尔滨百度推广排名优化_seo优化轻松seo优化排名_适合30岁短期培训班

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: