From 0d9fb68a04311c53f4254348e15f33a22bc023b3 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期三, 16 六月 2021 19:40:59 +0800 Subject: [PATCH] update 更新 自定义主键案例 --- ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 42 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..c3c71ef 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,15 @@ 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.cache.annotation.Cacheable; 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 +18,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 +42,34 @@ } 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(key); + log.info("閲婃斁閿佹垚鍔�: " + key); + } else { + log.error("鑾峰彇閿佸け璐�: " + key); + } + } catch (InterruptedException e) { + log.error(e.getMessage()); + } + return AjaxResult.success(); + } + + /** + * 娴嬭瘯spring-cache娉ㄨВ + */ + @Cacheable(value = "test", key = "#key") + @GetMapping("/testCache") + public AjaxResult<String> testCache(String key) { + return AjaxResult.success("鎿嶄綔鎴愬姛", key); + } } -- Gitblit v1.9.3