redis链接失败,发送短信验证码仍然是可以的,只报出一个异常connect refused
来源:7-19 个人中心数据修改以及预留的作业

架构师是怎样炼成de
2020-04-22
redis链接失败,发送短信验证码仍然是可以的,只报出一个异常connect refused
{
“status”: 0,
“message”: “Connection refused”,
“result”: []
}
产生的原因是我本地的redis关掉了,但是其他服务均正常,这里发送验证码等均正常,这种情况不合理,
因为无法缓存验证码,却发送成功了
写回答
1回答
-
天经地义
2020-04-22
public static function sendCode(string $phoneNumber, int $len, string $type = 'ali'): bool { // 生成短信验证码 $code = Num::getCode($len); // 工厂模式2 $classStats = ClassArr::smsClassStat(); $class = ClassArr::initClass($type, $classStats); $sms = $class::sendCode($phoneNumber, $code); if ($sms) { // 将验证码记录到redis,并设置失效时间 // 检查php环境是否有redis拓展 // redis服务 cache(config('redis.code_pre') . $phoneNumber, $code, config('redis.expire')); } return true; }
教程中是先发送成功才写redis,你可以改变一下逻辑,redis写入成功再发送,示例如下:
if (cache(config('redis.code_pre') . $phoneNumber, $code, config('redis.expire'))) { $classStats = ClassArr::smsClassStat(); $class = ClassArr::initClass($type, $classStats); $sms = $class::sendCode($phoneNumber, $code); }
00
相似问题