Ver Fonte

增加休眠时间,减少冲突

周箭河 há 4 anos atrás
pai
commit
82712b1f74

+ 5 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -302,10 +302,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if(chargeInfo.getMaxNum() != null) {
             //重试避免人数过多频繁冲突
             boolean flag = false;
+            int max = 100, min = 1;
+            int ran2 = (int) (Math.random() * (max - min) + min);
             for (int i = 1; i <= 100; i++) {
-                int max=10,min=1;
-                long ran2 = (long) (Math.random()*(max-min)+min);
-                Thread.sleep(ran2);
+                if (i == ran2) {
+                    Thread.sleep(ran2);
+                }
                 chargeInfo = sporadicChargeInfoDao.get(sporadicPayDto.getSporadicId());
                 if (chargeInfo.getMaxNum() <= chargeInfo.getPaidNum()) {
                     throw new BizException("活动人数暂时已满,请稍后再试");

+ 5 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SporadicChargeInfoImpl.java

@@ -142,10 +142,12 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
             if (info.getMaxNum() != null && info.getPaidNum() > 0) {
                 //重试避免人数过多频繁冲突
                 boolean flag = false;
+                int max = 100, min = 1;
+                int ran2 = (int) (Math.random() * (max - min) + min);
                 for (int i = 1; i <= 100; i++) {
-                    int max=10,min=1;
-                    long ran2 = (long) (Math.random()*(max-min)+min);
-                    Thread.sleep(ran2);
+                    if (i == ran2) {
+                        Thread.sleep(ran2);
+                    }
                     info = sporadicChargeInfoDao.get(info.getId());
                     info.setPaidNum(info.getPaidNum() - 1);
                     info.setUpdateTime(new Date());