既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
}
}
Redis上锁的方式:
//第1种
redisTemplate.opsForValue.setIfAbsent(key,value,time,TimeUnit);
//第2种
RLock lock = redissonClient.getLock(key);
lock.lock(time,TimeUnit)//上锁
不管是第1种,还是第2种,底层都是:setnx key value px time;上面的2种有可能有问题,问题在于:业务可能超过:上锁的时间,导致业务还没完成,锁就已经失效
解决方案:看门狗机制
RLock lock = redissonClient.getLock(key);
try {
//获得一把锁,锁的时间默认是30S,间隔10S检测一次锁的状态,如果超过10S锁的状态,仍旧是在使用,就把锁的时间重置为30S
//配置 看门狗
lock = redissonClient.getLock(lock.getName());
lock.lock();//上锁
//写:上锁的以后的业务代码
}catch (Exception e){
}finally {
lock.unlock();//立即解锁
}
### 接口幂等改进
>
> 使用 注解 + 拦截器完成对于 接口 进行幂等处理
>
>
>
HTML页面

OrderController
![在这里插入图片描述](https://i