Browse Source

优化定时任务

李进 1 năm trước cách đây
mục cha
commit
6b86e0a1cc

+ 0 - 4
device-api-service/src/main/java/com/xy/job/DeviceChargingJob.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
-import com.xy.annotate.RestMappingController;
 import com.xy.collections.map.JHashMap;
 import com.xy.collections.map.JMap;
 import com.xy.entity.SysDictRedis;
@@ -14,7 +13,6 @@ import com.xy.utils.*;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.GetMapping;
 
 import java.util.List;
 import java.util.Map;
@@ -25,7 +23,6 @@ import java.util.Map;
 @Slf4j
 @Component
 @AllArgsConstructor
-@RestMappingController("test")
 public class DeviceChargingJob {
 
     private DeviceChargingMapper deviceChargingMapper;
@@ -35,7 +32,6 @@ public class DeviceChargingJob {
      *
      * @return
      */
-    @GetMapping("test")
     @XxlJob("deviceChargingTimeout")
     public ReturnT<String> deviceChargingTimeout() {
         String now = DataTime.getSring();

+ 0 - 53
device-api-service/src/main/java/com/xy/job/DeviceDataJob.java

@@ -1,53 +0,0 @@
-package com.xy.job;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.xxl.job.core.biz.model.ReturnT;
-import com.xxl.job.core.handler.annotation.XxlJob;
-import com.xy.entity.DeviceData;
-import com.xy.entity.SysDictRedis;
-import com.xy.mapper.DeviceDataMapper;
-import com.xy.sys.EnumDataClearSize;
-import com.xy.utils.DataTime;
-import com.xy.utils.JobUtils;
-import com.xy.utils.SysDictUtils;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * <p>
- * 设备统计数据job
- * </p>
- *
- * @author lijin
- * @since 2023-01-11
- */
-@Slf4j
-@Component
-@AllArgsConstructor
-public class DeviceDataJob {
-
-    private DeviceDataMapper deviceDataMapper;
-
-    /**
-     * 数据清除
-     *
-     * @return
-     */
-    @XxlJob("delDeviceData")
-    public ReturnT<String> delDeviceData() {
-        //数据保留的天数
-        SysDictRedis sysDictRedis = SysDictUtils.get(EnumDataClearSize.Code.CODE.getCode(), EnumDataClearSize.DEVICE_DATA_DAY.getCode());
-        Integer jobParam = JobUtils.getPrams().gtInt();
-        Integer saveDay = jobParam != null ? jobParam
-                : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())
-                : 365;
-        LambdaQueryWrapper<DeviceData> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceData>()
-                .le(DeviceData::getCreateTime, DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0));
-        int delete = deviceDataMapper.delete(lambdaQueryWrapper);
-        if (delete > 0) {
-            log.info("设备统计数据清除完成,共{}条", delete);
-        }
-        return ReturnT.SUCCESS;
-    }
-}

+ 14 - 13
device-api-service/src/main/java/com/xy/job/DeviceEventMsgJob.java

@@ -5,10 +5,9 @@ import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xy.entity.DeviceEventMsg;
 import com.xy.entity.SysDictRedis;
-import com.xy.mapper.DeviceEventMsgMapper;
+import com.xy.service.DeviceEventMsgServiceImpl;
 import com.xy.sys.EnumDataClearSize;
 import com.xy.utils.DataTime;
-import com.xy.utils.JobUtils;
 import com.xy.utils.SysDictUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -27,7 +26,7 @@ import org.springframework.stereotype.Component;
 @AllArgsConstructor
 public class DeviceEventMsgJob {
 
-    private DeviceEventMsgMapper deviceEventMsgMapper;
+    private DeviceEventMsgServiceImpl deviceEventMsgService;
 
     /**
      * 数据清除
@@ -36,18 +35,20 @@ public class DeviceEventMsgJob {
      */
     @XxlJob("delDeviceEventMsgRecord")
     public ReturnT<String> delDeviceEventMsgRecord() {
-        //数据保留的天数
         SysDictRedis sysDictRedis = SysDictUtils.get(EnumDataClearSize.Code.CODE.getCode(), EnumDataClearSize.DEVICE_ERRORS_RECORD_DAY.getCode());
-        Integer jobParam = JobUtils.getPrams().gtInt();
-        Integer saveDay = jobParam != null ? jobParam
-                : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())
-                : 365;
+        Integer saveDay = Integer.valueOf(sysDictRedis.getValue());
+        String beginTime = DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0);
+        deviceEventMsg(beginTime);
+        return ReturnT.SUCCESS;
+    }
+
+    private void deviceEventMsg(String beginTime) {
         LambdaQueryWrapper<DeviceEventMsg> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceEventMsg>()
-                .le(DeviceEventMsg::getCreateTime, DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0));
-        int delete = deviceEventMsgMapper.delete(lambdaQueryWrapper);
-        if (delete > 0) {
-            log.info("机器消息数据清除完成,共{}条", delete);
+                .le(DeviceEventMsg::getCreateTime, beginTime)
+                .last("limit 10000");
+        boolean remove = deviceEventMsgService.remove(lambdaQueryWrapper);
+        if (remove) {
+            deviceEventMsg(beginTime);
         }
-        return ReturnT.SUCCESS;
     }
 }

+ 13 - 13
device-api-service/src/main/java/com/xy/job/DeviceNetRecordJob.java

@@ -5,10 +5,9 @@ import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xy.entity.DeviceNetRecord;
 import com.xy.entity.SysDictRedis;
-import com.xy.mapper.DeviceNetRecordMapper;
+import com.xy.service.DeviceNetRecordServiceImpl;
 import com.xy.sys.EnumDataClearSize;
 import com.xy.utils.DataTime;
-import com.xy.utils.JobUtils;
 import com.xy.utils.SysDictUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -27,7 +26,7 @@ import org.springframework.stereotype.Component;
 @AllArgsConstructor
 public class DeviceNetRecordJob {
 
-    private DeviceNetRecordMapper deviceNetRecordMapper;
+    private DeviceNetRecordServiceImpl deviceNetRecordService;
 
     /**
      * 数据清除
@@ -36,19 +35,20 @@ public class DeviceNetRecordJob {
      */
     @XxlJob("delDeviceNetRecord")
     public ReturnT<String> delDeviceNetRecord() {
-        //数据保留的天数
         SysDictRedis sysDictRedis = SysDictUtils.get(EnumDataClearSize.Code.CODE.getCode(), EnumDataClearSize.DEVICE_NET_RECORD_DAY.getCode());
-        Integer jobParam = JobUtils.getPrams().gtInt();
-        Integer saveDay = jobParam != null ? jobParam
-                : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())
-                : 30;
+        Integer saveDay = Integer.valueOf(sysDictRedis.getValue());
+        String beginTime = DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0);
+        deviceNetRecord(beginTime);
+        return ReturnT.SUCCESS;
+    }
+
+    private void deviceNetRecord(String beginTime) {
         LambdaQueryWrapper<DeviceNetRecord> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceNetRecord>()
-                .le(DeviceNetRecord::getCreateTime, DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0))
+                .le(DeviceNetRecord::getCreateTime, beginTime)
                 .last("limit 10000");
-        int delete = deviceNetRecordMapper.delete(lambdaQueryWrapper);
-        if (delete > 0) {
-            log.info("机器联网记录清除完成,共{}条", delete);
+        boolean remove = deviceNetRecordService.remove(lambdaQueryWrapper);
+        if (remove) {
+            deviceNetRecord(beginTime);
         }
-        return ReturnT.SUCCESS;
     }
 }

+ 0 - 53
device-api-service/src/main/java/com/xy/job/DeviceRecordsJob.java

@@ -1,53 +0,0 @@
-package com.xy.job;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.xxl.job.core.biz.model.ReturnT;
-import com.xxl.job.core.handler.annotation.XxlJob;
-import com.xy.entity.DeviceRecords;
-import com.xy.entity.SysDictRedis;
-import com.xy.mapper.DeviceRecordsMapper;
-import com.xy.sys.EnumDataClearSize;
-import com.xy.utils.DataTime;
-import com.xy.utils.JobUtils;
-import com.xy.utils.SysDictUtils;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * <p>
- * 设备操作变更记录job
- * </p>
- *
- * @author lijin
- * @since 2023-01-11
- */
-@Slf4j
-@Component
-@AllArgsConstructor
-public class DeviceRecordsJob {
-
-    private DeviceRecordsMapper deviceRecordsMapper;
-
-    /**
-     * 数据清除
-     *
-     * @return
-     */
-    @XxlJob("delDeviceRecords")
-    public ReturnT<String> delDeviceRecords() {
-        //数据保留的天数
-        SysDictRedis sysDictRedis = SysDictUtils.get(EnumDataClearSize.Code.CODE.getCode(), EnumDataClearSize.DEVICE_RECORDS_DAY.getCode());
-        Integer jobParam = JobUtils.getPrams().gtInt();
-        Integer saveDay = jobParam != null ? jobParam
-                : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())
-                : 30;
-        LambdaQueryWrapper<DeviceRecords> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceRecords>()
-                .le(DeviceRecords::getCreateTime, DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0));
-        int delete = deviceRecordsMapper.delete(lambdaQueryWrapper);
-        if (delete > 0) {
-            log.info("设备操作变更记录数据清除完成,共{}条", delete);
-        }
-        return ReturnT.SUCCESS;
-    }
-}

+ 13 - 12
device-api-service/src/main/java/com/xy/job/DeviceTempRecordsJob.java

@@ -5,10 +5,9 @@ import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xy.entity.DeviceTempRecords;
 import com.xy.entity.SysDictRedis;
-import com.xy.mapper.DeviceTempRecordsMapper;
+import com.xy.service.DeviceTempRecordsServiceImpl;
 import com.xy.sys.EnumDataClearSize;
 import com.xy.utils.DataTime;
-import com.xy.utils.JobUtils;
 import com.xy.utils.SysDictUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -27,7 +26,7 @@ import org.springframework.stereotype.Component;
 @AllArgsConstructor
 public class DeviceTempRecordsJob {
 
-    private DeviceTempRecordsMapper deviceTempRecordsMapper;
+    private DeviceTempRecordsServiceImpl deviceTempRecordsService;
 
     /**
      * 数据清除
@@ -38,17 +37,19 @@ public class DeviceTempRecordsJob {
     public ReturnT<String> delDeviceTempRecords() {
         //数据保留的天数
         SysDictRedis sysDictRedis = SysDictUtils.get(EnumDataClearSize.Code.CODE.getCode(), EnumDataClearSize.DEVICE_TEMP_RECORDS_DAY.getCode());
-        Integer jobParam = JobUtils.getPrams().gtInt();
-        Integer saveDay = jobParam != null ? jobParam
-                : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())
-                : 30;
+        Integer saveDay = Integer.valueOf(sysDictRedis.getValue());
+        String beginTime = DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0);
+        deviceTempRecords(beginTime);
+        return ReturnT.SUCCESS;
+    }
+
+    private void deviceTempRecords(String beginTime) {
         LambdaQueryWrapper<DeviceTempRecords> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceTempRecords>()
-                .le(DeviceTempRecords::getCreateTime, DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0))
+                .le(DeviceTempRecords::getCreateTime, beginTime)
                 .last("limit 10000");
-        int delete = deviceTempRecordsMapper.delete(lambdaQueryWrapper);
-        if (delete > 0) {
-            log.info("设备温度日志数据清除完成,共{}条", delete);
+        boolean remove = deviceTempRecordsService.remove(lambdaQueryWrapper);
+        if (remove) {
+            deviceTempRecords(beginTime);
         }
-        return ReturnT.SUCCESS;
     }
 }

+ 12 - 13
device-api-service/src/main/java/com/xy/job/MqttCommandJob.java

@@ -7,7 +7,6 @@ import com.xy.collections.list.JArrayList;
 import com.xy.collections.list.JList;
 import com.xy.entity.MqttCommand;
 import com.xy.entity.SysDictRedis;
-import com.xy.mapper.MqttCommandMapper;
 import com.xy.service.MqttServiceImpl;
 import com.xy.sys.EnumDataClearSize;
 import com.xy.utils.DataTime;
@@ -31,8 +30,6 @@ public class MqttCommandJob {
 
     private MqttServiceImpl mqttService;
 
-    private MqttCommandMapper mqttCommandMapper;
-
     /**
      * 指令数据清除
      *
@@ -42,18 +39,20 @@ public class MqttCommandJob {
     public ReturnT<String> commandClean() {
         //指令保留的天数
         SysDictRedis sysDictRedis = SysDictUtils.get(EnumDataClearSize.Code.CODE.getCode(), EnumDataClearSize.MQTT_COMMAND_DAY.getCode());
-        Integer jobParam = JobUtils.getPrams().gtInt();
-        Integer saveDay = jobParam != null ? jobParam
-                : sysDictRedis != null ? Integer.valueOf(sysDictRedis.getValue())
-                : 30;
+        Integer saveDay = Integer.valueOf(sysDictRedis.getValue());
+        String beginTime = DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0);
+        mqttCommand(beginTime);
+        return ReturnT.SUCCESS;
+    }
+
+    private void mqttCommand(String beginTime) {
         LambdaQueryWrapper<MqttCommand> lambdaQueryWrapper = new LambdaQueryWrapper<MqttCommand>()
-                .le(MqttCommand::getSendTime, DataTime.getStringAround(0, 0, (~(saveDay - 1)), 0, 0, 0))
+                .le(MqttCommand::getSendTime, beginTime)
                 .last("limit 10000");
-        Integer count = mqttCommandMapper.delete(lambdaQueryWrapper);
-        if (count > 0) {
-            log.info("已清除指令数据:{}条", count);
+        boolean remove = mqttService.remove(lambdaQueryWrapper);
+        if (remove) {
+            mqttCommand(beginTime);
         }
-        return ReturnT.SUCCESS;
     }
 
     /**
@@ -72,7 +71,7 @@ public class MqttCommandJob {
         LambdaQueryWrapper<MqttCommand> lambdaQueryWrapper = new LambdaQueryWrapper<MqttCommand>()
                 .in(MqttCommand::getStatus, Arrays.asList(MqttCommandStatusEnum.COMMAND_SEND.getKey()))
                 .le(MqttCommand::getSendTime, DataTime.getStringAround(0, 0, 0, 0, threshold, 0));
-        List<MqttCommand> mqttCommands = mqttCommandMapper.selectList(lambdaQueryWrapper);
+        List<MqttCommand> mqttCommands = mqttService.list(lambdaQueryWrapper);
         if (mqttCommands.size() == 0) {
             return ReturnT.SUCCESS;
         }

+ 1 - 1
device-start/src/main/resources/bootstrap-prod.yml

@@ -21,5 +21,5 @@ mysql:
   doc: true
 
 # 文件生成路径
-work:
+file:
   path: /work

+ 1 - 1
device-start/src/main/resources/bootstrap-prod2.yml

@@ -24,5 +24,5 @@ mysql:
   doc: true
 
 # 文件生成路径
-work:
+file:
   path: /work

+ 1 - 1
device-start/src/main/resources/bootstrap-uat.yml

@@ -16,5 +16,5 @@ xxl:
 workerId: 10
 
 # 文件生成路径
-work:
+file:
   path: /work