Selaa lähdekoodia

fix 重试次数

zoujiajian 1 vuosi sitten
vanhempi
sitoutus
f5d6437b6d

+ 3 - 1
netflix-service/src/main/java/com/cyksj/service/mange/group/CmsGroupServiceImpl.java

@@ -39,6 +39,7 @@ import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Optional;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -264,7 +265,8 @@ public class CmsGroupServiceImpl extends ServiceImpl<GroupsMapper,GroupsTrips> i
             //设置奈飞用户座位
             if (account.getGoodsId() == 1) {
                 User user = userMapper.selectById(relation.getUserId());
-	            groupsRelationNetflixService.timingSetNetflix(relation.getNum(), user.getNickname(), account.getAccount(), account.getPassword(), relation.getExpiryTime());
+                AtomicInteger start = new AtomicInteger(1);
+                groupsRelationNetflixService.timingSetNetflix(relation.getNum(), user.getNickname(), account.getAccount(), account.getPassword(), relation.getExpiryTime(), start);
             }
         }
         if (groupsRelations.isEmpty() && verifyCodeList != null && verifyCodeList.size() > 0) {

+ 3 - 1
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -80,6 +80,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -755,7 +756,8 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             User user = userMapper.selectById(newRelation.getUserId());
             GroupsTrips groupsTrips = groupsMapper.selectById(newRelation.getGroupsId());
             Account account = accountMapper.selectById(groupsTrips.getAccountId());
-	        groupsRelationNetflixService.timingSetNetflix(newRelation.getNum(), user.getNickname(), account.getAccount(), account.getPassword(), newRelation.getExpiryTime());
+            AtomicInteger start = new AtomicInteger(1);
+            groupsRelationNetflixService.timingSetNetflix(newRelation.getNum(), user.getNickname(), account.getAccount(), account.getPassword(), newRelation.getExpiryTime(), start);
         }
 
         if (plusPurchaseSkuRelation != null && plus_relationList != null) {

+ 3 - 1
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -114,6 +114,7 @@ import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -2523,7 +2524,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				if (groupsTrips.getStatus() != GroupsTrips.Status.waiting) {
 					Account account = accountMapper.selectById(groupsTrips.getAccountId());
 					User user = userMapper.selectById(orderDon.getUserId());
-					groupsRelationNetflixService.timingSetNetflix(relation.getNum(), user.getNickname(), account.getAccount(), account.getPassword(), relation.getExpiryTime());
+					AtomicInteger start = new AtomicInteger(1);
+					groupsRelationNetflixService.timingSetNetflix(relation.getNum(), user.getNickname(), account.getAccount(), account.getPassword(), relation.getExpiryTime(), start);
 				}
 			}
 			groupsRelationExpiryRecordService.syncGroupsRelationExpiryRecord(orderDon, goodsDon, sku);

+ 2 - 1
netflix-service/src/main/java/com/cyksj/service/relation/GroupsRelationNetflixService.java

@@ -4,6 +4,7 @@ import cn.hutool.json.JSONObject;
 import com.cyksj.model.request.NfDeviceReq;
 
 import java.util.Date;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * 项目名: yhlxj2
@@ -24,7 +25,7 @@ public interface GroupsRelationNetflixService {
 	/**
 	 * 定时设置奈飞座位号
 	 */
-	void timingSetNetflix(Integer num, String nickname, String account, String password, Date expiryTime);
+	void timingSetNetflix(Integer num, String nickname, String account, String password, Date expiryTime, AtomicInteger start);
 
 	JSONObject nfKickOut(long userId, Long relationId);
 

+ 7 - 2
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupsRelationNetflixServiceImpl.java

@@ -31,6 +31,7 @@ import java.net.http.HttpRequest;
 import java.net.http.HttpResponse;
 import java.util.Date;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * 项目名: yhlxj2
@@ -166,12 +167,16 @@ public class GroupsRelationNetflixServiceImpl implements GroupsRelationNetflixSe
 	 * 30s执行一次
 	 */
 	@Override
-	public void timingSetNetflix(Integer num, String nickname, String account, String password, Date expiryTime) {
+	public void timingSetNetflix(Integer num, String nickname, String account, String password, Date expiryTime, AtomicInteger start) {
 		try {
 			String key = RedisService.key.NETFLIX_SET_LIMIT_TIME.getName();
 			if (!redisService.setNx(key, 1L, 30L)) {
 				jobManager.addJob(30001, () -> {
-					timingSetNetflix(num, nickname, account, password, expiryTime);
+					if (start.get() > 3) {
+						return;
+					}
+					start.incrementAndGet();
+					timingSetNetflix(num, nickname, account, password, expiryTime, start);
 				});
 			} else {
 				setNetflixSeatNum(num, nickname, account, password, expiryTime, null);