From e586f040a9b148850c85d967a9dec5b235f6491e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 12 五月 2020 21:10:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java | 41 +++++++++++++++++++----------------------
1 files changed, 19 insertions(+), 22 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java b/fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java
index c408baf..ca188f2 100644
--- a/fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java
+++ b/fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java
@@ -1,6 +1,5 @@
package com.yeshi.fanli.aspect;
-import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.util.HashMap;
@@ -30,6 +29,7 @@
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.params.SetParams;
@Component
@Aspect
@@ -62,7 +62,7 @@
}
@Around("execution(public * com.yeshi.fanli.controller.client.*.*.*(..))")
- public Object requestSerializable(ProceedingJoinPoint joinPoint) throws IOException {
+ public Object requestSerializable(ProceedingJoinPoint joinPoint) throws Throwable {
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;
Method targetMethod = methodSignature.getMethod();
@@ -92,55 +92,49 @@
if (!StringUtil.isNullOrEmpty(cacheKey)) {
cacheKey = joinPoint.getTarget().getClass().getName() + "." + targetMethod.getName() + "-"
+ cacheKey;
+ String cacheAlias = cacheKey;
cacheKey = "rs-" + StringUtil.Md5(cacheKey);
// jiedis鍘熷瓙鎬у仛鎷︽埅
Jedis jedis = jedisPool.getResource();
+ long threadId = Thread.currentThread().getId();
try {
- Constant.waitingThreadSet.add(Thread.currentThread().getId());
- long result = 0;
+ Constant.waitingThreadSet.add(threadId);
+ String result = null;
long startTime = System.currentTimeMillis();
// 绛夊緟鍝嶅簲
- while (result <= 0) {
- result = jedis.setnx(cacheKey, "1");
- if (result <= 0) {
+ while (StringUtil.isNullOrEmpty(result)) {
+
+ result = jedis.set(cacheKey, "1", new SetParams().nx().ex(30));
+ if (StringUtil.isNullOrEmpty(result)) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
- if (System.currentTimeMillis() - startTime > 1000 * 60L) {
+ if (System.currentTimeMillis() - startTime > 1000 * 30L) {
Constant.waitingThreadSet.remove(Thread.currentThread().getId());
out.print(JsonUtil.loadFalseResult("杩炴帴瓒呮椂"));
return null;
}
} else {
- // 璁剧疆30绉掑鐞嗘椂闂�
- jedis.expire(cacheKey, 30);
+ break;
}
}
- if (result > 0) {
+ if (!StringUtil.isNullOrEmpty(result)) {
try {
return joinPoint.proceed();
- } catch (Throwable e) {
- e.printStackTrace();
- LogHelper.errorDetailInfo(e);
} finally {
jedis.del(cacheKey);
Constant.waitingThreadSet.remove(Thread.currentThread().getId());
}
}
} finally {
- jedisPool.returnResource(jedis);
+ jedis.close();
}
}
} catch (Exception e) {// 鍘熷瓙鎬т繚鎶ゅ嚭閿�
- try {
- return joinPoint.proceed();
- } catch (Throwable e1) {
- e.printStackTrace();
- LogHelper.errorDetailInfo(e1);
- }
+ return joinPoint.proceed();
}
}
@@ -154,7 +148,10 @@
return joinPoint.proceed();
} catch (Throwable e) {
e.printStackTrace();
- LogHelper.errorDetailInfo(e);
+ if (!Constant.IS_TEST)
+ LogHelper.errorDetailInfo(e);
+ else
+ throw e;
} finally {
}
return null;
--
Gitblit v1.8.0