From 79dca28cff4424c8a66778e73c8761d3bf710e38 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期三, 15 四月 2020 16:17:17 +0800
Subject: [PATCH] 消息调整
---
fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java | 43 +++++++++++++++----------------------------
1 files changed, 15 insertions(+), 28 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 a18292e..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();
@@ -96,19 +96,16 @@
cacheKey = "rs-" + StringUtil.Md5(cacheKey);
// jiedis鍘熷瓙鎬у仛鎷︽埅
Jedis jedis = jedisPool.getResource();
- long threadId= Thread.currentThread().getId();
- LogHelper.test("杩涘叆鎷︽埅:"+cacheKey+"-"+threadId);
+ long threadId = Thread.currentThread().getId();
try {
Constant.waitingThreadSet.add(threadId);
- long result = 0;
+ String result = null;
long startTime = System.currentTimeMillis();
// 绛夊緟鍝嶅簲
- while (result <= 0) {
- result = jedis.setnx(cacheKey, "1");
- LogHelper.error("瑙﹀彂骞跺彂閿�:" + cacheAlias);
- LogHelper.error("redis閿�:" + cacheKey);
- if (result <= 0) {
- LogHelper.test("绛夊緟:"+threadId);
+ 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) {
@@ -120,37 +117,24 @@
return null;
}
} else {
- // 璁剧疆30绉掑鐞嗘椂闂�
- jedis.expire(cacheKey, 30);
- LogHelper.test("鑾峰彇鍒伴攣:"+threadId);
break;
}
}
- if (result > 0) {
+ if (!StringUtil.isNullOrEmpty(result)) {
try {
return joinPoint.proceed();
- } catch (Throwable e) {
- e.printStackTrace();
- LogHelper.errorDetailInfo(e);
} finally {
- LogHelper.test("鏂规硶鎵ц瀹屾瘯:"+threadId);
jedis.del(cacheKey);
Constant.waitingThreadSet.remove(Thread.currentThread().getId());
- LogHelper.test("閲婃斁閿�:"+threadId);
}
}
} finally {
- jedisPool.returnResource(jedis);
+ jedis.close();
}
}
} catch (Exception e) {// 鍘熷瓙鎬т繚鎶ゅ嚭閿�
- try {
- return joinPoint.proceed();
- } catch (Throwable e1) {
- e.printStackTrace();
- LogHelper.errorDetailInfo(e1);
- }
+ return joinPoint.proceed();
}
}
@@ -164,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