防止重复调用

前段防重

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

后端防重

   //获取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");
            }
        }
相关推荐
-seventy-12 分钟前
Ajax 与 Vue 框架应用点——随笔谈
前端
不会编程的懒洋洋27 分钟前
Spring Cloud Eureka 服务注册与发现
java·笔记·后端·学习·spring·spring cloud·eureka
我认不到你28 分钟前
antd proFromSelect 懒加载+模糊查询
前端·javascript·react.js·typescript
集成显卡31 分钟前
axios平替!用浏览器自带的fetch处理AJAX(兼容表单/JSON/文件上传)
前端·ajax·json
赖龙32 分钟前
java程序打包及执行 jar命令及运行jar文件
java·pycharm·jar
U12Euphoria34 分钟前
java的runnable jar采用exe和.bat两种方式解决jre环境的问题
java·pycharm·jar
scc214038 分钟前
spark的学习-06
javascript·学习·spark
焚琴煮鹤的熊熊野火39 分钟前
前端垂直居中的多种实现方式及应用分析
前端
java小吕布1 小时前
Java Lambda表达式详解:函数式编程的简洁之道
java·开发语言
我是苏苏1 小时前
C# Main函数中调用异步方法
前端·javascript·c#