From 82f1f5d0cf1b51a5d81915e842e01760f404fa74 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期三, 20 十月 2021 13:07:16 +0800 Subject: [PATCH] update 优化xxl-job-admin相关pr代码 增加格式化日志输出与docker镜像 --- ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java | 55 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 43 insertions(+), 12 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 b872a5f..a720246 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,8 +1,12 @@ package com.ruoyi.demo.controller; +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.AjaxResult; -import com.ruoyi.common.core.redis.RedisLockManager; -import com.ruoyi.demo.service.ITestDemoService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; @@ -10,43 +14,70 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.time.LocalTime; + /** * 娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚� * * @author shenxinquan */ +@Api(value = "娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚�", tags = {"娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚�"}) @Slf4j @RestController @RequestMapping("/demo/redisLock") public class RedisLockController { @Autowired - private ITestDemoService testDemoService; + private LockTemplate lockTemplate; /** - * 娴嬭瘯lock4j - * @param key - * @param value - * @return + * 娴嬭瘯lock4j 娉ㄨВ */ + @ApiOperation("娴嬭瘯lock4j 娉ㄨВ") + @Lock4j(keys = {"#key"}) @GetMapping("/testLock4j") public AjaxResult<String> testLock4j(String key,String value){ - testDemoService.testLock4j(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()); return AjaxResult.success("鎿嶄綔鎴愬姛",value); } + + /** + * 娴嬭瘯lock4j 宸ュ叿 + */ + @ApiOperation("娴嬭瘯lock4j 宸ュ叿") @GetMapping("/testLock4jLockTemaplate") public AjaxResult<String> testLock4jLockTemaplate(String key,String value){ - testDemoService.testLock4jLockTemaplate(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); + } + //缁撴潫 return AjaxResult.success("鎿嶄綔鎴愬姛",value); } - - - /** * 娴嬭瘯spring-cache娉ㄨВ */ + @ApiOperation("娴嬭瘯spring-cache娉ㄨВ") @Cacheable(value = "test", key = "#key") @GetMapping("/testCache") public AjaxResult<String> testCache(String key) { -- Gitblit v1.9.3