防止重复调用

前段防重

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

后端防重

复制代码
   //获取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");
            }
        }
相关推荐
放弃 治疗12 小时前
Windows 11系统 最新 Launch4j 安装与使用教程:从 JAR 到 EXE 的完整打包指南
java·jar
火星校尉12 小时前
一场数据基建与消费场景的跨界实验
java·前端·数据库·python·php
寻道码路12 小时前
LangChain4j Java AI 应用开发实战(二十六):多模型集成策略 —— OpenAI、DeepSeek、阿里百炼混合使用
java·开发语言·人工智能·ai
ch.ju12 小时前
Java Programming Chapter 4——Static code block
java·开发语言
risc12345612 小时前
Lucene80DocValuesConsumer 五种类型源码阅读顺序
java·服务器·前端
弹简特12 小时前
【Java项目-企悦抽】04-项目演示+项目源码+AI赋能整理接口文档
java·开发语言
小米渣的逆袭12 小时前
Chrome Extension Script World(ISOLATED / MAIN)原理与适用场景
前端·javascript·chrome
万亿少女的梦16813 小时前
基于Spring Boot的楚雄旅游景区门票售卖系统设计与实现
java·spring boot·mysql·vue·系统设计
不会写代码的ys13 小时前
C++复习篇
java·开发语言·c++
微信开发api-视频号协议13 小时前
Codex++安全边界探秘:从模型能力到风险防御
前端·安全·微信·企业微信