From a6ba7d909329b8f2262b7014c1ffc7b0dde2a56e Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期三, 09 六月 2021 23:31:47 +0800 Subject: [PATCH] update 优化pr redis工具代码 --- ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java | 34 ++++++++++++++++++++++++++++++++-- 1 files changed, 32 insertions(+), 2 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..40019fc 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 @@ -2,9 +2,14 @@ import com.ruoyi.common.annotation.RedisLock; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.redis.RedisLockManager; +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.util.concurrent.TimeUnit; /** @@ -12,16 +17,20 @@ * * @author shenxinquan */ +@Slf4j @RestController @RequestMapping("/demo/redisLock") public class RedisLockController { + @Autowired + private RedisLockManager redisLockManager; + /** * #p0 鏍囪瘑鍙栫涓�涓弬鏁颁负redis閿佺殑key */ - @GetMapping("/getLock") + @GetMapping("/testLock1") @RedisLock(expireTime = 10, key = "#p0") - public AjaxResult<String> getLock(String key, String value) { + public AjaxResult<String> testLock1(String key, String value) { try { // 鍚屾椂璇锋眰鎺掗槦 // Thread.sleep(5000); @@ -32,4 +41,25 @@ } return AjaxResult.success("鎿嶄綔鎴愬姛",value); } + + /** + * 娴嬭瘯閿佸伐鍏风被 + */ + @GetMapping("/testLock2") + public AjaxResult<Void> testLock(String key, Long time) { + try { + boolean flag = redisLockManager.getLock(key, time, TimeUnit.SECONDS); + if (flag) { + log.info("鑾峰彇閿佹垚鍔�: " + key); + Thread.sleep(3000); + redisLockManager.unLock(); + log.info("閲婃斁閿佹垚鍔�: " + key); + } else { + log.error("鑾峰彇閿佸け璐�: " + key); + } + } catch (InterruptedException e) { + log.error(e.getMessage()); + } + return AjaxResult.success(); + } } -- Gitblit v1.9.3