From 645c926bbd52baa90c0a4af0d253047709c5e02c Mon Sep 17 00:00:00 2001
From: sxq <812980466@qq.com>
Date: 星期二, 22 六月 2021 16:06:02 +0800
Subject: [PATCH] 集成lock4j框架,删除redisson锁,使用lock4j的锁。

---
 ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
index 75f5232..8d80e39 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/TestDemoServiceImpl.java
@@ -2,6 +2,10 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.lock.LockInfo;
+import com.baomidou.lock.LockTemplate;
+import com.baomidou.lock.annotation.Lock4j;
+import com.baomidou.lock.executor.RedissonLockExecutor;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.annotation.DataScope;
@@ -18,8 +22,10 @@
 import com.ruoyi.demo.mapper.TestDemoMapper;
 import com.ruoyi.demo.service.ITestDemoService;
 import com.ruoyi.demo.vo.TestDemoVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalTime;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -33,6 +39,43 @@
 @Service
 public class TestDemoServiceImpl extends ServicePlusImpl<TestDemoMapper, TestDemo> implements ITestDemoService {
 
+
+	@Autowired
+	private LockTemplate lockTemplate;
+
+	@Override
+	public void testLock4jLockTemaplate(String key) {
+		final LockInfo lockInfo = lockTemplate.lock(key, 30000L, 5000L, RedissonLockExecutor.class);
+		if (null == lockInfo) {
+			throw new RuntimeException("涓氬姟澶勭悊涓�,璇风◢鍚庡啀璇�");
+		}
+		// 鑾峰彇閿佹垚鍔燂紝澶勭悊涓氬姟
+		try {
+			try {
+				Thread.sleep(8000);
+			} catch (InterruptedException e) {
+				//
+			}
+		 System.out.println("鎵ц绠�鍗曟柟娉�1 , 褰撳墠绾跨▼:" + Thread.currentThread().getName());
+		} finally {
+			//閲婃斁閿�
+			lockTemplate.releaseLock(lockInfo);
+		}
+		//缁撴潫
+	}
+
+	@Override
+	@Lock4j(executor = RedissonLockExecutor.class,keys = {"#key"})
+	public void testLock4j(String key) {
+		System.out.println("start:"+key+",time:"+LocalTime.now().toString());
+		try {
+			Thread.sleep(10000);
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		}
+		System.out.println("end :"+key+",time:"+LocalTime.now().toString());
+	}
+
 	@Override
 	public TestDemoVo queryById(Long id) {
 		return getVoById(id, TestDemoVo.class);

--
Gitblit v1.9.3