|
|
@@ -1,12 +1,23 @@
|
|
|
package com.xunmei.host.server.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
|
+import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.nacos.api.exception.NacosException;
|
|
|
+import com.alibaba.nacos.api.naming.NamingService;
|
|
|
+import com.alibaba.nacos.api.naming.pojo.Instance;
|
|
|
+import com.alibaba.nacos.client.naming.NacosNamingService;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xunmei.common.core.constant.Constants;
|
|
|
+import com.xunmei.common.core.constant.ServiceNameConstants;
|
|
|
import com.xunmei.common.core.domain.iot.domain.IotServerInfo;
|
|
|
import com.xunmei.common.core.enums.iot.IotServerConnectStatus;
|
|
|
+import com.xunmei.common.core.utils.JacksonUtils;
|
|
|
import com.xunmei.common.core.utils.uuid.UUID;
|
|
|
import com.xunmei.common.redis.utils.RedisUtils;
|
|
|
import com.xunmei.host.server.mapper.IotServerInfoMapper;
|
|
|
@@ -15,12 +26,17 @@ import com.xunmei.system.api.domain.SysOrg;
|
|
|
import com.xunmei.system.api.util.LogUtils;
|
|
|
import org.redisson.api.RLock;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.web.client.RestClientException;
|
|
|
|
|
|
+import javax.annotation.PostConstruct;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
@@ -33,11 +49,16 @@ import java.util.concurrent.TimeUnit;
|
|
|
@Service
|
|
|
public class IotServerInfoServiceImpl extends ServiceImpl<IotServerInfoMapper, IotServerInfo> implements IotServerInfoService {
|
|
|
|
|
|
-/* @Autowired
|
|
|
- private NamingService namingService;
|
|
|
|
|
|
+ private NamingService namingService;
|
|
|
@Autowired
|
|
|
- private RestTemplate restTemplate;*/
|
|
|
+ private NacosDiscoveryProperties nacosDiscoveryProperties;
|
|
|
+
|
|
|
+
|
|
|
+ @PostConstruct
|
|
|
+ public void initNacos() throws NacosException {
|
|
|
+ namingService = new NacosNamingService(nacosDiscoveryProperties.getNacosProperties());
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public IotServerInfo getToken(String registerCode) {
|
|
|
@@ -130,7 +151,7 @@ public class IotServerInfoServiceImpl extends ServiceImpl<IotServerInfoMapper, I
|
|
|
|
|
|
@Override
|
|
|
public void checkWsOnLine() {
|
|
|
- /* List<Instance> instanceList = new ArrayList<>();
|
|
|
+ List<Instance> instanceList = new ArrayList<>();
|
|
|
try {
|
|
|
instanceList = namingService.getAllInstances(ServiceNameConstants.HOST);
|
|
|
} catch (NacosException e) {
|
|
|
@@ -146,18 +167,21 @@ public class IotServerInfoServiceImpl extends ServiceImpl<IotServerInfoMapper, I
|
|
|
} catch (RuntimeException e) {
|
|
|
LogUtils.SOCKET_CONNECT_STATUS_CHECK.error("获取服务上WS链接状态时异常", e);
|
|
|
throw new RuntimeException(e);
|
|
|
- }*/
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
- /*private List<String> getOnlineWs(List<Instance> instanceList) throws RuntimeException {
|
|
|
+ private List<String> getOnlineWs(List<Instance> instanceList) throws RuntimeException {
|
|
|
//多线程远程调用获取服务状态
|
|
|
List<String> onlineWS = new ArrayList<>();
|
|
|
for (Instance instance : instanceList) {
|
|
|
- List<String> list = null;
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
try {
|
|
|
- list = restTemplate.getForObject(instance.getIp() + ":" + instance.getPort() + "/getOnlineWs", List.class);
|
|
|
+ final String s = HttpUtil.get(instance.getIp() + ":" + instance.getPort() + "/getOnlineWs");
|
|
|
+ if (ObjectUtil.isNotEmpty(s)) {
|
|
|
+ list = JSON.parseArray(s, String.class);
|
|
|
+ }
|
|
|
LogUtils.SOCKET_CONNECT_STATUS_CHECK.info("获取当前系统在线的WS链接:{}", JacksonUtils.toJSONString(list));
|
|
|
} catch (RestClientException e) {
|
|
|
throw new RuntimeException(e);
|
|
|
@@ -206,5 +230,5 @@ public class IotServerInfoServiceImpl extends ServiceImpl<IotServerInfoMapper, I
|
|
|
wrapper.in(IotServerInfo::getIotCode, onlineIotCode);
|
|
|
baseMapper.update(null, wrapper);
|
|
|
LogUtils.SOCKET_CONNECT_STATUS_CHECK.info("修改在线的WS连接的检测时间:{}", JacksonUtils.toJSONString(onlineIotCode));
|
|
|
- }*/
|
|
|
+ }
|
|
|
}
|