防止重复调用

前段防重

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

后端防重

复制代码
   //获取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");
            }
        }
相关推荐
|晴 天|1 天前
从零打造现代化个人博客:Vue 3 + TypeScript + Element Plus 完整实战
javascript·css·chrome·typescript·html5·webstorm
va学弟1 天前
Agent入门开发
java·运维·服务器·ai
果然1231 天前
Vue 3 Composition API 最佳实践:从项目实战中汲取的经验
前端
做时间的朋友。1 天前
Java虚拟线程详解:从原理到实战,解锁百万并发新姿势
java·开发语言
一只大袋鼠1 天前
MyBatis 从入门到实战(二):代理 Dao 开发与多表关联查询
java·开发语言·数据库·mysql·mybatis
周末也要写八哥1 天前
C++实际开发之泛型编程(模版编程)
java·开发语言·c++
好家伙VCC1 天前
**发散创新:用 Rust实现游戏日引擎核心模块——从事件驱动到多线程调度的实战
java·开发语言·python·游戏·rust
014-code1 天前
Chronicle Queue:把 Disruptor 的数据落盘
java·服务器
小江的记录本1 天前
【系统设计】《2026高频经典系统设计题》(秒杀系统、短链接系统、订单系统、支付系统、IM系统、RAG系统设计)(完整版)
java·后端·python·安全·设计模式·架构·系统架构
希望永不加班1 天前
SpringBoot 中 AOP 实现权限校验(角色/权限)
java·spring boot·后端·spring