From 3f76ec837b343e5a8538f2ce50010714d16cdeef Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期四, 07 十一月 2019 12:24:40 +0800
Subject: [PATCH] 红包领取
---
fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 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 a2d5d62..a18292e 100644
--- a/fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java
+++ b/fanli/src/main/java/com/yeshi/fanli/aspect/RequestSerializableAspect.java
@@ -92,27 +92,38 @@
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();
+ LogHelper.test("杩涘叆鎷︽埅:"+cacheKey+"-"+threadId);
try {
- Constant.waitingThreadSet.add(Thread.currentThread().getId());
+ Constant.waitingThreadSet.add(threadId);
long result = 0;
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);
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);
+ LogHelper.test("鑾峰彇鍒伴攣:"+threadId);
+ break;
}
}
@@ -123,8 +134,10 @@
e.printStackTrace();
LogHelper.errorDetailInfo(e);
} finally {
+ LogHelper.test("鏂规硶鎵ц瀹屾瘯:"+threadId);
jedis.del(cacheKey);
Constant.waitingThreadSet.remove(Thread.currentThread().getId());
+ LogHelper.test("閲婃斁閿�:"+threadId);
}
}
} finally {
--
Gitblit v1.8.0