防止重复调用

前段防重

在前段设置状态在响应时进入遮罩层或给按钮一个状态

后端防重

复制代码
   //获取setNX锁
        if (redisTemplate.opsForValue().setIfAbsent("lock", orderId)) {
            //获取锁成功
            try {
                //Redission 获取锁
                RLock lock = redissonClient.getLock("lock");
                boolean acquired = lock.tryLock(10, TimeUnit.SECONDS); // 尝试获取锁,最多等待10秒
                if (acquired) {
                    try {
                        // 执行业务逻辑

                    } finally {
                        lock.unlock(); // 记得解锁
                    }
                }
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            } finally {
                //删除锁
                redisTemplate.delete("lock");
            }
        }
相关推荐
想要成为糕糕手3 分钟前
238. 除了自身以外数组的乘积 — 面试向深度解析
javascript·算法·面试
kisshyshy4 分钟前
前端存储、表单异步提交与 this 指向完全指南
前端·javascript·html
cidy_985 分钟前
Skills 技能库- JulyCode
前端
Kel9 分钟前
管道、IPC、Socket:你以为的三种技术,其实是同一件事
javascript·设计模式·node.js
Csvn9 分钟前
TypeScript 泛型约束的 3 层演进:从 `extends` 到条件类型到重载推导
前端
小四的小六10 分钟前
AI产品翻车实录:模型总结幻觉的三大类型与检测方案
前端·openai·ai编程
心中有国也有家11 分钟前
AtomGit Flutter 鸿蒙客户端: AnimatedScale 与 AnimatedContainer 联合实战
android·javascript·flutter·华为·harmonyos
狂师11 分钟前
端开发必装 Skill 清单:6 款 AI 技能,让你的开发效率原地起飞
前端·程序员·开源
36304584112 分钟前
KlineChartQuant Tooltip 高频交互 200FPS 性能优化完整复盘
前端·架构
卓怡学长13 分钟前
w261springboot基于web学校课程管理系统
java·数据库·spring boot·spring·intellij-idea