From 0ee562cf75454d5a8493136c9330df0fd8b4818c Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 27 Jun 2022 16:38:03 +0800 Subject: [PATCH] bug --- .../commons/tools/aop/NoRepeatSubmitAop.java | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aop/NoRepeatSubmitAop.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aop/NoRepeatSubmitAop.java index 89bea1357f..50494598ac 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aop/NoRepeatSubmitAop.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aop/NoRepeatSubmitAop.java @@ -48,34 +48,30 @@ public class NoRepeatSubmitAop { Object result = null; RLock lock = null; try { - //key 为空则直接跳过 不加锁 - if (key != null){ - long leaseTime = noRepeatSubmit.leaseTime(); - //如果获取不到锁等待0秒直接返回 持锁时间为leaseTime - lock = distributedLock.getLock(RedisKeys.getNoRepeatSubmitKey(key), leaseTime, NumConstant.ZERO_L, TimeUnit.MILLISECONDS); - //因为getLock如果获取失败抛异常 所以不做锁状态的判断 + try { + //key 为空则直接跳过 不加锁 + if (key != null) { + long leaseTime = noRepeatSubmit.leaseTime(); + //如果获取不到锁等待0秒直接返回 持锁时间为leaseTime + lock = distributedLock.getLock(RedisKeys.getNoRepeatSubmitKey(key), leaseTime, NumConstant.ZERO_L, TimeUnit.MILLISECONDS); + //因为getLock如果获取失败抛异常 所以不做锁状态的判断 + } + } catch (Exception e) { + log.warn("noRepeatSubmit key:{},msg:{}", key, e.getMessage()); + //"未获取到锁,重复提交了 + throw new RenException(EpmetErrorCode.REPEAT_SUBMIT.getCode()); } - } catch (Exception e) { - log.warn("noRepeatSubmit key:{},msg:{}", key, e.getMessage()); - //"未获取到锁,重复提交了 - throw new RenException(EpmetErrorCode.REPEAT_SUBMIT.getCode()); - } finally { - distributedLock.unLock(lock); - } - try { - //因为getLock如果获取失败抛异常 所以不做锁状态的判断 + //执行业务代码 result = pjp.proceed(); } finally { distributedLock.unLock(lock); } - return result; - } private String getKey(String keyExpress, String token) { - log.debug("getKey param keyExpress:{},token:{}",keyExpress,token); + log.debug("getKey param keyExpress:{},token:{}", keyExpress, token); if (StringUtils.isBlank(token)) { return null; }