在签到远程调用新增积分接口后,如果积分接口报错,会出现什么问题
来源:4-20 Redis实现TOPN积分排行榜
慕仔8930017
2021-01-18
老师你好,这个问题我的第一反应是会造成数据库和缓存的不一致。
即:redis记录了签到次数,但是数据库没有对应的积分记录。且课程中的代码会返回给用户异常,但是redis已经写成功了,用户再次签到则会提示用户当前日期已完成签到,无需再签。
我想的是catch住远程调用的方法,如果发生异常,则setBit(signKey, offset, false).然后再返回给用户异常信息。
以上是我暂时想到的,还请老师指教。
写回答
1回答
-
这是两个不同的业务,当然具体看产品如何定义,比如对积分要求不是那么高,那么积分服务有异常,那也可以忽略,如果积分要求很严格,比如签到一定要有积分,那么有很多种解决方案:比如不调用远程积分服务,自己写积分操作(这是最简单最安全的做法),如果调用了远程那么就可以按照你所讲的去实现,不单单是catch里面捕捉,还有远程积分服务返回的数据是不是正常的,都需要判断,判断完后如果有错误就setBit(signKey, offset, false).
032021-01-18
相似问题
签到问题
回答 1
请教老师 这个包的 不是连接池是吗?
回答 1