Parcourir la source

将iot定时任务的任务迁移到job定时服务模块中运行

james il y a 7 mois
Parent
commit
6ab261ce4c

+ 20 - 0
service-iot/service-iot-api/src/main/java/com/usky/iot/RemoteIotTaskService.java

@@ -0,0 +1,20 @@
+package com.usky.iot;
+
+
+import com.usky.iot.factory.RemoteIotTaskFactory;
+import com.usky.iot.factory.RemotePmFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@FeignClient(contextId = "RemoteIotTaskService", value = "service-iot" , fallbackFactory = RemoteIotTaskFactory.class)
+public interface RemoteIotTaskService {
+
+    @GetMapping("/dataOverviewJobData")
+    void dataOverviewJobData();
+
+    @GetMapping("/baseAlarmStatus")
+    void baseAlarmStatus();
+
+    @GetMapping("/customInfoStatus")
+    void customInfoStatus();
+}

+ 45 - 0
service-iot/service-iot-api/src/main/java/com/usky/iot/factory/RemoteIotTaskFactory.java

@@ -0,0 +1,45 @@
+package com.usky.iot.factory;
+
+import com.usky.common.core.exception.FeignBadRequestException;
+import com.usky.iot.RemoteIotTaskService;
+import com.usky.iot.RemotePmService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 用户服务降级处理
+ *
+ * @author ruoyi
+ */
+@Component
+public class RemoteIotTaskFactory implements FallbackFactory<RemoteIotTaskService>
+{
+    private static final Logger log = LoggerFactory.getLogger(RemoteIotTaskFactory.class);
+
+    @Override
+    public RemoteIotTaskService create(Throwable throwable)
+    {
+        log.error("用户服务调用失败:{}", throwable.getMessage());
+        return new RemoteIotTaskService()
+        {
+            @Override
+            public void dataOverviewJobData() {
+                throw new FeignBadRequestException(500,"数据概览数据定时生成异常"+throwable.getMessage());
+            }
+
+            @Override
+            public void baseAlarmStatus() {
+                throw new FeignBadRequestException(500,"定时同步设备状态和设备告警数据异常"+throwable.getMessage());
+            }
+
+            @Override
+            public void customInfoStatus() {
+                throw new FeignBadRequestException(500,"定时同步客户信息状态异常"+throwable.getMessage());
+            }
+
+        };
+    }
+}

+ 37 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/api/ServiceIotTaskApi.java

@@ -0,0 +1,37 @@
+package com.usky.iot.controller.api;
+
+import com.usky.iot.RemoteIotTaskService;
+import com.usky.iot.service.BaseAlarmService;
+import com.usky.iot.service.CrmCustomInfoService;
+import com.usky.iot.service.job.DmpDataOverviewJob;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class ServiceIotTaskApi implements RemoteIotTaskService {
+
+    @Autowired
+    private DmpDataOverviewJob dmpDataOverviewJob;
+
+    @Autowired
+    private BaseAlarmService baseAlarmService;
+
+    @Autowired
+    private CrmCustomInfoService crmCustomInfoService;
+
+    @Override
+    public void dataOverviewJobData () {
+        dmpDataOverviewJob.execute();
+    }
+
+    @Override
+    public void baseAlarmStatus() {
+        baseAlarmService.status();
+    }
+
+    @Override
+    public void customInfoStatus() {
+        crmCustomInfoService.updateStatus();
+    }
+}

+ 16 - 16
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/TaskController.java

@@ -37,21 +37,21 @@ public class TaskController implements ApplicationContextAware {
         context = applicationContext;
     }
 
-    @Scheduled(cron = "0 30 23 * * ? ") //每天23点30分执行
-    public void task() {
-        System.out.println(Thread.currentThread().getName() + "定时任务执行中");
-        dmpDataOverviewJob.execute();
-    }
-    @Scheduled(cron = "0 0 23 * * ? ") //每天23点执行
-    public void task1() {
-        System.out.println(Thread.currentThread().getName() + "定时任务执行中");
-        baseAlarmService.status();
-    }
-
-    @Scheduled(cron = "0 30 * * * ? ") //每天凌晨0点30分执行
-    public void task2() {
-        System.out.println(Thread.currentThread().getName() + "定时任务执行中");
-        crmCustomInfoService.updateStatus();
-    }
+//    @Scheduled(cron = "0 30 23 * * ? ") //每天23点30分执行
+//    public void task() {
+//        System.out.println(Thread.currentThread().getName() + "定时任务执行中");
+//        dmpDataOverviewJob.execute();
+//    }
+//    @Scheduled(cron = "0 0 23 * * ? ") //每天23点执行
+//    public void task1() {
+//        System.out.println(Thread.currentThread().getName() + "定时任务执行中");
+//        baseAlarmService.status();
+//    }
+//
+//    @Scheduled(cron = "0 30 * * * ? ") //每天凌晨0点30分执行
+//    public void task2() {
+//        System.out.println(Thread.currentThread().getName() + "定时任务执行中");
+//        crmCustomInfoService.updateStatus();
+//    }
 
 }

+ 4 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseAlarmServiceImpl.java

@@ -23,6 +23,7 @@ import com.usky.iot.service.config.websocket.WebSocket;
 import com.usky.iot.service.vo.BaseAlarmListVO;
 import com.usky.iot.service.vo.BaseAlarmRequestVO;
 import com.usky.iot.service.vo.BaseAlarmResponeVO;
+import lombok.extern.slf4j.Slf4j;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,6 +48,7 @@ import java.util.stream.Collectors;
  * @author han
  * @since 2023-07-13
  */
+@Slf4j
 @Service
 public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, BaseAlarm> implements BaseAlarmService {
 
@@ -618,6 +620,7 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
 
     @Override
     public void status(){
+        log.info("定时同步设备状态和设备告警数据 start");
         ApiResult<List<StatusVO>> resultList = dataQueryClient.status();
         List<StatusVO> list = resultList.getData();
         if(CollectionUtils.isNotEmpty(list)){
@@ -701,6 +704,7 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
             }
 
         }
+        log.info("定时同步设备状态和设备告警数据 end");
     }
 
     @Override

+ 4 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/CrmCustomInfoServiceImpl.java

@@ -17,6 +17,7 @@ import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.iot.service.vo.CrmCustomInfoExportVO;
 import com.usky.iot.service.vo.CrmCustomInfoRequestVO;
 import com.usky.iot.service.vo.CrmCustomInfoStatisticVO;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -32,6 +33,7 @@ import java.util.*;
  * @author han
  * @since 2023-06-26
  */
+@Slf4j
 @Service
 public class CrmCustomInfoServiceImpl extends AbstractCrudService<CrmCustomInfoMapper, CrmCustomInfo> implements CrmCustomInfoService {
 
@@ -177,6 +179,7 @@ public class CrmCustomInfoServiceImpl extends AbstractCrudService<CrmCustomInfoM
 
     @Override
     public void updateStatus(){
+        log.info("同步客户信息状态 start");
         LambdaQueryWrapper<CrmCustomInfo> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(CrmCustomInfo::getDeleteFlag,0);
         List<CrmCustomInfo> list = this.list(queryWrapper);
@@ -196,6 +199,7 @@ public class CrmCustomInfoServiceImpl extends AbstractCrudService<CrmCustomInfoM
                 }
             }
         }
+        log.info("同步客户信息状态 end");
 
     }
 

+ 4 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/job/DmpDataOverviewJob.java

@@ -12,12 +12,14 @@ import com.usky.iot.domain.DmpDataOverview;
 import com.usky.iot.mapper.DmpDeviceStatusMapper;
 import com.usky.iot.service.DmpDataOverviewService;
 import com.usky.iot.service.vo.DmpDataOverviewVO;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
 import java.util.stream.Collectors;
 
+@Slf4j
 @Service
 public class DmpDataOverviewJob {
 
@@ -29,7 +31,9 @@ public class DmpDataOverviewJob {
     private DmpDataOverviewService dmpDataOverviewService;
 
     public void execute(){
+        log.info("定时生成数据概览数据 start");
         deviceCount();
+        log.info("定时生成数据概览数据 end");
     }
 
     /**

+ 19 - 0
service-job/src/main/java/com/ruoyi/job/task/RyTask.java

@@ -2,6 +2,7 @@ package com.ruoyi.job.task;
 
 import com.usky.common.core.utils.StringUtils;
 import com.usky.fire.RemoteFireService;
+import com.usky.iot.RemoteIotTaskService;
 import com.usky.iot.RemotePmService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -19,6 +20,9 @@ public class RyTask {
     @Autowired
     private RemotePmService remotePmService;
 
+    @Autowired
+    private RemoteIotTaskService remoteIotTaskService;
+
     public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
         System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
     }
@@ -41,4 +45,19 @@ public class RyTask {
         remotePmService.executeTimedSending();
     }
 
+    public void dataOverviewJobData(){
+        System.out.println("dataOverviewJobData start......");
+        remoteIotTaskService.dataOverviewJobData();
+    }
+
+    public void baseAlarmStatus(){
+        System.out.println("baseAlarmStatus start......");
+        remoteIotTaskService.baseAlarmStatus();
+    }
+
+    public void customInfoStatus(){
+        System.out.println("customInfoStatus start......");
+        remoteIotTaskService.customInfoStatus();
+    }
+
 }