zoukankan      html  css  js  c++  java
  • 基于数据库悲观锁的分布式锁

    一、基于数据库悲观锁的分布式锁 

     代码

       

    package com.example.distributelock.controller;
    
    import com.example.distributelock.dao.DistributeLockMapper;
    import com.example.distributelock.model.DistributeLock;
    import com.example.distributelock.model.DistributeLockExample;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.transaction.annotation.Transactional;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import java.util.concurrent.locks.Lock;
    import java.util.concurrent.locks.ReentrantLock;
    
    @RestController
    @Slf4j
    public class DemoController {
        @Resource
        private DistributeLockMapper distributeLockMapper;
    
        @RequestMapping("singleLock")
        @Transactional(rollbackFor = Exception.class)
        public String singleLock() throws Exception {
            log.info("我进入了方法!");
            DistributeLock distributeLock = distributeLockMapper.selectDistributeLock("demo");
            if (distributeLock==null) throw new Exception("分布式锁找不到");
            log.info("我进入了锁!");
            try {
                Thread.sleep(20000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "我已经执行完成!";
        }
    }
    Controller
  • 相关阅读:
    C#中使用事务
    C#中执行数据库存储过程
    构建ASP.net的AJAX开发环境
    C#开发数据库技巧汇总
    索引的作用及其使用
    C#中的多态性
    C#中调用C++的DLL
    不借助其它变量交换两变量值
    ASP.NET页面间传值的9种方式
    TERSUS无代码开发(笔记11)TERSUS框架学习框架基本信息修改
  • 原文地址:https://www.cnblogs.com/callbin/p/14580274.html
Copyright © 2011-2022 走看看