防止重复调用

前段防重

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

后端防重

复制代码
   //获取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");
            }
        }
相关推荐
qq_368019664 小时前
用 react 的react-syntax-highlighter 实现语法高亮、行号与多行错误行高亮
前端·react.js·前端框架
lbh4 小时前
从LLM到Agent的核心概念
前端·openai·ai编程
历程里程碑4 小时前
Proto3 三大高级类型:Any、Oneof、Map 灵活解决复杂业务场景
java·大数据·开发语言·数据结构·elasticsearch·链表·搜索引擎
蜜獾云4 小时前
DDD 架构分层,MQ消息要放到那一层处理?
java·jvm·架构
夫礼者4 小时前
【极简监控】核弹级排障利器:仿 Jenkins Script Console 打造免重启诊断“黑科技”
java·jenkins·监控·排错
空空潍4 小时前
Spring AI 实战系列(四):Prompt工程深度实战
java·人工智能·spring·prompt
第二只羽毛4 小时前
IO代码解释3
java·大数据·开发语言
weisian1514 小时前
Java并发编程--24-死锁排查与性能调优:线上并发问题诊断指南(死锁,CPU飙升,内存溢出)
java·开发语言·arthas·死锁·火焰图·cpu飙升
-Da-4 小时前
【操作系统学习日记】并发编程中的竞态条件与同步机制:互斥锁与信号量
java·服务器·javascript·数据库·系统架构
Irene19914 小时前
JavaScript脚本加载的两种方式:defer/async 的区别
前端·javascript·php