当前位置: 首页 > news >正文

太仓营销型网站建设网站设计如何在ps先做

太仓营销型网站建设,网站设计如何在ps先做,免费营销,动画设计和动漫设计目录 1.幂等性是什么? 2.如何实现幂等性呢? 1.新增管理员,出弹窗的同时,请求后台。 2.后端根据雪花算法生成唯一标识key,以雪花数为key存到redis。并返回key给前端。 3.前端保存后端传过来的key。 4.前端输入完成…

目录

1.幂等性是什么?

2.如何实现幂等性呢?

1.新增管理员,出弹窗的同时,请求后台。

2.后端根据雪花算法生成唯一标识key,以雪花数为key存到redis。并返回key给前端。

3.前端保存后端传过来的key。

4.前端输入完成信息,点击【保存】,携带key请求后端。

5.请求到达后端,验证key,根据key去redis里查,如果得不到值,说明已处理过。否则尝试获取redisson锁,然后处理业务,并删掉redis里的值。


1.幂等性是什么?

新增和修改功能的时候,常常需要用到幂等性。

所谓的幂等性就是,即使不小心多按了几次,仍然只执行一次。常用在下单、增量修改、插入数据的时候。

效果:

在同一时间狂点鼠标“新增”,或者jmter压测并发多线程访问这个接口,也执行一次新增。

 

2.如何实现幂等性呢?

本次案例采用,token+redis+分布式锁:

流程如下所示:

1.新增管理员,出弹窗的同时,请求后台。

//获取唯一标识beforeAdd() {setTimeout(() => {this.dialogAdd = true;}, 500);//请求后台拿唯一标识(this.imageUrl = ""),this.$axios.get("/api/pc-zdy-sys/admin/preAddAdmin").then((res) => {if (res.data.code == 200) {this.allRoleList = res.data.data.allRoleList; //系统里所有的角色this.key = res.data.data.key; //唯一标识key}});},

2.后端根据雪花算法生成唯一标识key,以雪花数为key存到redis。并返回key给前端。

 public String preAddAdmin() {//雪花id 为key存到redis 值可以无意义Long snowflakeNextId = IdUtil.getSnowflakeNextId();String key = String.valueOf(snowflakeNextId);redisTemplate.opsForValue().set(key,"唯一标识");//返回雪花idreturn key;}

3.前端保存后端传过来的key。

data() {return {key: "", //唯一标识key};},

4.前端输入完成信息,点击【保存】,携带key请求后端。

confirmAdd() {//key带到后台去,请求接口确认新增this.AddAdmin.url = this.imageUrl;this.AddAdmin.key = this.key;if(this.isAnyFieldEmpty){this.$message({message: "不能为空",type: "danger",});return;}this.$axios.post("/api/pc-zdy-sys/admin", this.AddAdmin).then((res) => {if (res.data.code == 200) {this.$message({message: "恭喜你,新增成功",type: "success",});this.dialogAdd = false;this.queryAdmin()}}).catch((error) => {this.$message({message: "新增失败",type: "danger",});});},

5.请求到达后端,验证key,根据key去redis里查,如果得不到值,说明已处理过。否则尝试获取redisson锁,然后处理业务,并删掉redis里的值。

public void addAdmin(UserDTO userDTO) {//根据key找是否有tokenString key = userDTO.getKey();if(StringUtils.isBlank(key)||ObjectUtil.isEmpty(redisTemplate.opsForValue().get(key))){//没有key或根据key找不到token直接抛异常throw new RuntimeException("新增失败");}//拿锁去处理RLock lock = redissonClient.getLock(key);boolean b = lock.tryLock();//如果拿锁失败if(!b){throw new RuntimeException("新增失败");}lock.lock();try {//admin加到用户表User user = new User();BeanUtils.copyProperties(userDTO,user);user.setStatus(1);userMapper.insert(user);//将userDTO里角色list加到角色-用户 中间表去//需要用户id 角色id集合userRoleMapper.addRoleListToUserRole(user.getId(),userDTO.getRoleList());//删掉缓存redisTemplate.delete(key);} catch (Exception e){e.printStackTrace();}finally {lock.unlock();}}

http://www.yayakq.cn/news/903779/

相关文章:

  • wordpress站点浏览wordpress过滤
  • 网站建设的行业资讯_龙岩网站建设大概费用
  • 微信订阅号做网站榆林电商网站建设
  • html5怎末做意见反馈网站外包网页
  • 免费自己建站seo外链专员
  • 河南省建设厅八大员网站作文网站投稿
  • 郑州网站建设排行榜用户界面设计模板
  • 宜昌网站改版手游传奇新开服网站
  • 泰安企业网站制作做微信公众号网站源码
  • 济南外贸网站湖北省高考招生综合信息服务平台
  • 山西做网站的公司久久建筑网会员登陆中心
  • 做白酒用哪个分类信息网站js网站模板怎么用
  • 企业网站制作哪些公司制作网站建设亿玛酷正规
  • 在百度怎样建网站电子商务网站建设与管理的实践报告
  • 如何建立一个论坛网站做付费网站好
  • 网站布局如何修改wordpress update
  • 报班学网站开发价格app拉新推广平台有哪些
  • 做毕业设计的网站设计网站框架优化
  • 做网站需要电脑吗四川seo
  • 给客户做网站怎样制作免费网页
  • 建立网站的基本流程有哪些步骤wordpress 文字围绕图片
  • 网站建设基础考试百度指数是怎么计算的
  • php+网站开发案例教程网站手机版开发
  • 免费做网站平台推广网站弄哪家好
  • 唐山长城网站建设国家军事网
  • vps怎么上传网站程序搜索引擎都有哪些
  • 购物网站开发一般使用什么语言网站底部链接代码
  • 侨联网站建设seo策略推广什么意思
  • 用照片做的ppt模板下载网站网站开发排期表模板
  • html5网站单页模板网站诊断seo当前数据是指