防止重复调用

前段防重

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

后端防重

复制代码
   //获取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");
            }
        }
相关推荐
紫_龙11 分钟前
最新版vue3+TypeScript开发入门到实战教程之vue3与vue2语法优劣对比
前端·javascript·typescript
空空kkk20 分钟前
Java基础——代理
java·开发语言
野生技术架构师21 分钟前
互联网大厂必备 Java 面试八股文真题解析
java·开发语言·面试
Rsun0455125 分钟前
synchronized关键字的底层实现
java
老约家的可汗28 分钟前
C++篇之类和对象下
java·开发语言·c++
SouthRosefinch38 分钟前
一、HTML简介与开发环境
开发语言·前端·html
€81144 分钟前
Java入门级教程27——ActiveMQ的下载与应用
java·开发语言·activemq·点对点文本消息发送·点对点对象消息发送·mysql+redis·序列化对象消息传输
全栈小51 小时前
【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起
前端·javascript·vue.js
Joker Zxc1 小时前
【前端基础(Javascript部分)】4、JavaScript的分支语句
开发语言·前端·javascript
IT_陈寒1 小时前
JavaScript 性能优化的5个隐藏技巧:90%开发者都不知道的实战方案!
前端·人工智能·后端