您现在的位置是:首页 > 正文

redis锁

2024-04-01 07:38:06阅读 1

redis锁

        try {
            int i = 0;
            boolean lock = stringRedisTemplate.opsForValue().setIfAbsent("userTeamLockFlag", "userTeamLockFlag", 15, TimeUnit.SECONDS);
            while (!lock) {
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
                if (i++ >= 30) throw new BusinessException("服务器繁忙,请稍后重试!!!");
                lock = stringRedisTemplate.opsForValue().setIfAbsent("userTeamLockFlag", "userTeamLockFlag", 15, TimeUnit.SECONDS);
            }

            // 业务处理
            //添加订单
            order = addOrder(userEntity, loginUser, mallStoreCartEntities);
            if (!order.get("code").equals(StateCodeEnum.SYS_SUCCESS.getCode())) return order;

            //删除购物车
            LambdaUpdateWrapper<MallStoreCartEntity> updateWrapper = new LambdaUpdateWrapper<>();
            updateWrapper.in(MallStoreCartEntity::getId, dto.getCartIds()).set(MallStoreCartEntity::getIsDelete, false);
            boolean update = this.update(updateWrapper);
            if (!update)
                return RestResponse.error(StateCodeEnum.CLOSE_AN_ACCOUNT_ERROR.getCode(), StateCodeEnum.CLOSE_AN_ACCOUNT_ERROR.getMsg());

        } finally {
            //处理完业务需求释放掉锁
            stringRedisTemplate.delete("userTeamLockFlag");
        }

在这里插入图片描述

网站文章

  • shell字符串转日期,日期转字符串,判断字符串包含某个字符串,删除某个目录下的几天前的日志文件

    shell字符串转日期,日期转字符串,判断字符串包含某个字符串,删除某个目录下的几天前的日志文件

    2024-04-01 07:37:40
  • UVA - 310 - L--system

    题意:在D0L这样一个系统中存在一个有限的集合(包含字母),一个P集合(字母的映射)和一个初始串。题目给定一个初始串,叫你判断是否能通过不断映射构成目标串或者包含该目标串的串。例如a->aa,b->bb,初始串为ab,目标串为aaabb,这样的话,初始串根据映射衍化(注意,扩展时必须同时采用两规则):ab(a->aa,b->bb)->aabb->aaaabbbb 这样就得到了含有目标串的串,输出Y

    2024-04-01 07:37:31
  • 2021年度软件企业 100 强榜单(附全名单)

    2021年度软件企业 100 强榜单(附全名单)

    Java面试笔试面经、Java技术每天学习一点公众号Java面试关注我不迷路来源:中国电子报8月27日,中国电子信息行业联合会主办的2021年度软件和信息技术服务企业竞争力报告及前百家企业...

    2024-04-01 07:37:25
  • 计算机辅助翻译与文化,翻译单位研究对计算机辅助翻译的启示-翻译与跨文化研究中心.PDF...

    翻译单位研究对计算机辅助翻译的启示-翻译与跨文化研究中心2009 年第 6 期 外语研究 ...

    2024-04-01 07:36:59
  • cpu主板内存条属于计算机主机吗,电脑内存条频率取决于CPU还是主板?

    cpu主板内存条属于计算机主机吗,电脑内存条频率取决于CPU还是主板?

    电脑内存条的频率到底是是由谁决定的?是主板还是CPU?到底内存频率对性能影响有多大,刚开始了解电脑硬件的小伙伴估计有很多这方面的疑惑。总之就是高频内存条的频率到底是由谁来决定,我相信看完这篇文章之后,...

    2024-04-01 07:36:54
  • mysql skip slave_MySQL Slave with GTID – How to use slave_skip_errors ?

    Okay, here’s a challenge. Assume that you’ve a Master-Slave setup. Both are GTID enabled and Slave i...

    2024-04-01 07:36:46
  • 2022年自考专业(公关关系)传播学概论练习题

    1、媒介综合集团的媒介融合实践被称之为“坦帕模式”,其实现资源共享和效益共增的关键决策是设立( )A.多媒体新闻总编辑B.品牌CEOC.新闻总监D.首席架构师2、下列选项中,属于线性模式的是( )A....

    2024-04-01 07:36:42
  • yolov5环境配置

    yolov5环境配置

    Windows系统下1、安装Anaconda3(我的版本),配置好环境变量(不同版本环境变量文件可能不同)2、安装电脑对应的显卡版本驱动(NVIDIA GeForce GTX 1050)3、安装CUDA(10.2版本),成功安装后再安装cuDNN(一定是对应于CUDA版本)4、安装pytorch,配置pytorch环境,克隆yolov5包。

    2024-04-01 07:36:15
  • java毕业设计智能医疗推荐系统Mybatis+系统+数据库+调试部署

    jsp本科生实习管理系统的设计与实现sqlserver。ssm基于SSM的停车场收费管理系统的设计与实现。ssm基于ssm的再生产公益管理系统的设计与实现。JSP视频网站的设计与实现sqlserver...

    2024-04-01 07:36:08
  • 不停服! 怎么迁移数据

    不停服! 怎么迁移数据

    原文前言数据迁移时, 为了保证数据的一致性, 往往伴随着停服, 此期间无法给用户提供服务或只能提供部分服务. 同时, 为了确保迁移后业务及数据的正确性, 迁移后测试工作也要占用不少时间. 如此造成的损失是比较大的。接下来, 本文将就如何在不停服的情况下进行数据迁移进行探讨。案例订单系统中存在这样一组订单表:数据库: MySQL表名: order_{0~19}, 其中...

    2024-04-01 07:36:02