做外贸的几个网站,物联网技术应用是学什么的,如何创建wordpress数据库,成都网站建设哪家结合Redis解决接口幂等性问题 引言正文收获 引言
该问题产生背景是根据需求描述#xff0c;要求对已发布的课程能进行编辑修改#xff0c;并且要求能进行回滚。
幂等性问题描述#xff1a;对同一个接口并发请求产生的结果是不变的。 Get 请求以及 Delete 请求天然保证幂等… 结合Redis解决接口幂等性问题 引言正文收获 引言
该问题产生背景是根据需求描述要求对已发布的课程能进行编辑修改并且要求能进行回滚。
幂等性问题描述对同一个接口并发请求产生的结果是不变的。 Get 请求以及 Delete 请求天然保证幂等性。在本例中主要解决 Post 请求更新产生的幂等性问题。
正文
点击页面编辑课程按钮会发送一个携带修改课程 id 的 Post 请求。请求到达后端首先进行非空校验然后拼接前缀形成 Redis 的 Key如果查询不为空则表明其他请求正在修改该课程直接返回错误。如果为空则可以进行修改将该课程 id 存入 Redis然后判断是否有正在编辑的课程副本如果存在已经生成的副本则直接返回该副本 id 在这个基础上继续修改。如果不存在则生成一份原课程的副本将副本id返回给前端。
收获
实践检验了使用 Redis 解决幂等性问题是可行的。并且对比之前更新学习时开发项目在企业中开发要考虑的更全面。之前未考虑到首先在副本上修改没有提供回滚功能。而在企业中没有直接修改原数据而是修改复制一份的副本上在最后确认修改完毕后再将原数据标记为删除状态修改后数据标记为发布状态。