防止重复调用

前段防重

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

后端防重

复制代码
   //获取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");
            }
        }
相关推荐
1024小神5 小时前
uniapp项目中使用vue3和小程序组件父子通信
前端·小程序·uni-app
hxjhnct5 小时前
React 为什么不采用(VUE)绑定数据?
javascript·vue.js·react.js
Knight_AL5 小时前
Vue + Spring Boot 项目添加 /wvp 前缀的完整链路解析(从浏览器到静态资源)
前端·vue.js·spring boot
粟悟饭&龟波功5 小时前
【软考系统架构设计师】九、架构演化与维护
前端·后端·架构·系统架构·软件工程
广州华水科技6 小时前
单北斗GNSS的变形监测应用是什么?主要用于大坝的安全监测吗?
前端
七夜zippoe6 小时前
Spring WebFlux核心原理-对比Servlet与响应式模型
java·spring·servlet·长连接·webflux·短连接
猫头虎6 小时前
如何解决pip报错 import pandas as pd ModuleNotFoundError: No module named ‘pandas‘问题
java·python·scrapy·beautifulsoup·pandas·pip·scipy
Hao_Harrision6 小时前
50天50个小项目 (React19 + Tailwindcss V4) ✨| AnimatedCountdown(倒计时组件)
前端·typescript·react·tailwindcss·vite7
谢小飞6 小时前
构建前端监控体系:Sentry私有化部署与项目集成实践
javascript·监控
qq_406176146 小时前
什么是模块化
开发语言·前端·javascript·ajax·html5