防止重复调用

前段防重

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

后端防重

复制代码
   //获取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");
            }
        }
相关推荐
To_OC1 分钟前
拼路径读文件总踩坑?我把 Node 的 path 和 fs 彻彻底底捋了一遍
javascript·后端·node.js
VortMall1 分钟前
全维度打磨细节体验,赋能商城稳定有序运营|VortMall 微服务商城 v1.3.11 版本发布
java·微服务·云原生·架构·商城系统·开源商城·vortmall
Tirzano4 分钟前
java 精简使用ffmpeg
java·开发语言·ffmpeg
自然 醒5 分钟前
记录We码开发者工具的一个bug
前端·javascript·bug
葡萄城技术团队7 分钟前
HTML元素单元格:用自定义 CellType 扩展 SpreadJS 的显示能力
前端·javascript·html
不好听6137 分钟前
Fragment:React 的 `<></>` 和原生的 DocumentFragment,同名不同命
前端·react.js·dom
唐青枫10 分钟前
Java Jersey 实战指南:用 JAX-RS 注解写清晰的 REST API
java
不好听61313 分钟前
useState 完全解析:初始化、异步更新、以及为什么传函数能解决闭包问题
前端·react.js
一只小小Java1 小时前
Naocs本地部署&安装3.2.3+Spring boot 3.2.0
java·spring boot·后端·nacos
JL151 小时前
Spring Boot vs Gin:Java 人搭第一个 Go REST API
java·spring boot·gin