From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 18 一月 2020 12:06:27 +0800
Subject: [PATCH] 用户注册信息

---
 fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java |   37 ++++++++++++++-----------------------
 1 files changed, 14 insertions(+), 23 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 3d31429..b206d41 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,54 +96,45 @@
 						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");
-								LogHelper.error("瑙﹀彂骞跺彂閿�:" + cacheAlias);
-								LogHelper.error("redis閿�:" + cacheKey);
-								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();
 				}
 			}
 

--
Gitblit v1.8.0