Просмотр исходного кода

修复设备重新订阅,更改启动后订阅契机,改为启动后

yf_zn 1 год назад
Родитель
Сommit
f9669126c8

+ 12 - 0
src/main/java/com/yunfeiyun/agmp/iots/AgmpIotsApplication.java

@@ -1,5 +1,7 @@
 package com.yunfeiyun.agmp.iots;
 
+import com.yunfeiyun.agmp.common.utils.spring.SpringUtils;
+import com.yunfeiyun.agmp.iots.core.manager.ConnectionManager;
 import org.mybatis.spring.annotation.MapperScan;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -26,6 +28,16 @@ public class AgmpIotsApplication {
     public static void main(String[] args) {
         SpringApplication.run(AgmpIotsApplication.class, args);
         log.info("物联网服务子系统启动成功");
+        //便启动边订阅收到消息处理导致启动太慢,启动之后再进行连接创建和链接
+        log.info("【链接建立初始化】【执行】");
+        long st = System.currentTimeMillis();
+        try {
+            SpringUtils.getBean(ConnectionManager.class).init();
+            long end = System.currentTimeMillis();
+            log.info("【链接建立初始化】【耗时:{}】", (end - st) + "ms");
+        } catch (Exception e) {
+            log.error("【链接建立初始化】【执行】异常", e);
+        }
     }
 
 

+ 0 - 45
src/main/java/com/yunfeiyun/agmp/iots/core/init/AfterRunner.java

@@ -1,45 +0,0 @@
-package com.yunfeiyun.agmp.iots.core.init;
-
-import com.yunfeiyun.agmp.iots.task.DeviceScheduler;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.ApplicationArguments;
-import org.springframework.boot.ApplicationRunner;
-import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Component;
-
-/**
- * 做数据初始化
- * zhangn
- */
-@Component
-@Order(value = 10)
-@Slf4j
-public class AfterRunner implements ApplicationRunner {
-    @Autowired
-    private DeviceScheduler deviceScheduler;
-
-    @Override
-    public void run(ApplicationArguments args) throws Exception {
-        log.info("【数据初始化】【执行设备同步】");
-        try {
-            //deviceScheduler.synMqDevice();
-        } catch (Exception e) {
-            log.error("【数据初始化】【执行物候设备同步】异常", e);
-        }
-        try {
-            //deviceScheduler.autoInsertSfDevice();
-        } catch (Exception e) {
-            log.error("【数据初始化】【执行宏泰设备同步】异常", e);
-        }
-
-        try {
-            //deviceScheduler.autoInsertBySfDevice();
-        } catch (Exception e) {
-            log.error("【数据初始化】【执行博云设备同步】异常", e);
-        }
-
-
-
-    }
-}

+ 1 - 6
src/main/java/com/yunfeiyun/agmp/iots/core/manager/ConnectionManager.java

@@ -42,21 +42,16 @@ public class ConnectionManager {
     @Autowired
     private BusinessCoreService businessCoreService;
     @Resource
-    private TypeCacheService typeCacheService;
-    @Resource
     private DeviceTopicService deviceTopicService;
     @Resource
     private DeviceconnCacheService deviceconnCacheService;
-    @Autowired
-    private IotStatusService iotStatusService;
-
 
     /**
      * 加载数据库设备配置
      *
      * @throws MqttException
      */
-    @PostConstruct
+    //@PostConstruct
     public void init() throws MqttException {
         deviceconnCacheService.cleanCache();
         //把所有私有连接信息查询出来

+ 1 - 0
src/main/java/com/yunfeiyun/agmp/iots/task/IotStatusService.java

@@ -125,6 +125,7 @@ public class IotStatusService {
                         iotDevice.setDevStatus("0");
                         iotDevice.setDevOfflinedate(DateUtils.dateTimeNow());
                         iotDevice.setDevModifieddate(DateUtils.dateTimeNow());
+                        iotDevice.setDevtypeBid(iotDeviceStatusResVo.getDevtypeBid());
                         iotDevice.setDevconnBid(iotDeviceStatusResVo.getDevconnBid());
                         iIotDeviceService.updateIotDevice(iotDevice);
                         log.info("【设备检测】【设备状态异常更新-设备类型{} 】设备标识:{} 设备编号 {} 设备名称 {} 异常状态 {}", type, devBid, devCode, devName, iotDeviceStatusResVo.getDevStatus());

+ 2 - 2
src/main/java/com/yunfeiyun/agmp/iots/task/YbqScheduler.java

@@ -177,8 +177,8 @@ public class YbqScheduler {
      * 延迟10分钟再拉取
      * 我们:从10分开始,每一个小时拉取一次
      */
-    //@Scheduled(cron = "0 10/59 0/1 * * ? ")
-    @Scheduled(cron = "0 0/2 0/1 * * ?")
+    @Scheduled(cron = "0 10/59 0/1 * * ? ")
+    //@Scheduled(cron = "0 0/2 0/1 * * ?")
     public void synReportData() {
         synPredictedData();
         String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.addMinutes(new Date(), -20));