From a6bed384d73ae7d28a134e6739bf599d9e8372e1 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期一, 14 十一月 2022 18:10:43 +0800
Subject: [PATCH] update 更新 系统演示文档地址
---
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java | 72 +++++++++++++++++++++++++++---------
1 files changed, 54 insertions(+), 18 deletions(-)
diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java
index 7792784..ebc923d 100644
--- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java
+++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java
@@ -1,10 +1,17 @@
package com.ruoyi.demo.controller;
-import com.ruoyi.common.annotation.RedisLock;
-import com.ruoyi.common.core.domain.AjaxResult;
+import com.baomidou.lock.LockInfo;
+import com.baomidou.lock.LockTemplate;
+import com.baomidou.lock.annotation.Lock4j;
+import com.baomidou.lock.executor.RedissonLockExecutor;
+import com.ruoyi.common.core.domain.R;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalTime;
/**
@@ -12,24 +19,53 @@
*
* @author shenxinquan
*/
+@Slf4j
@RestController
@RequestMapping("/demo/redisLock")
public class RedisLockController {
- /**
- * #p0 鏍囪瘑鍙栫涓�涓弬鏁颁负redis閿佺殑key
- */
- @GetMapping("/getLock")
- @RedisLock(expireTime = 10, key = "#p0")
- public AjaxResult<String> getLock(String key, String value) {
- try {
- // 鍚屾椂璇锋眰鎺掗槦
-// Thread.sleep(5000);
- // 閿佽秴鏃舵祴璇�
- Thread.sleep(11000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return AjaxResult.success("鎿嶄綔鎴愬姛",value);
- }
+ @Autowired
+ private LockTemplate lockTemplate;
+
+ /**
+ * 娴嬭瘯lock4j 娉ㄨВ
+ */
+ @Lock4j(keys = {"#key"})
+ @GetMapping("/testLock4j")
+ public R<String> testLock4j(String key, String value) {
+ 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());
+ return R.ok("鎿嶄綔鎴愬姛", value);
+ }
+
+ /**
+ * 娴嬭瘯lock4j 宸ュ叿
+ */
+ @GetMapping("/testLock4jLockTemplate")
+ public R<String> testLock4jLockTemplate(String key, String value) {
+ 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);
+ }
+ //缁撴潫
+ return R.ok("鎿嶄綔鎴愬姛", value);
+ }
+
}
--
Gitblit v1.9.3