Explorar o código

feat: 定时任务新增,支持清理设备超30天http和长连接心跳

lihao16 hai 4 meses
pai
achega
27b72004f7

+ 35 - 0
smsb-modules/smsb-job/src/main/java/org/dromara/job/snailjob/DeleteHisDataExecutor.java

@@ -0,0 +1,35 @@
+package org.dromara.job.snailjob;
+
+import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
+import com.aizuda.snailjob.client.model.ExecuteResult;
+import com.aizuda.snailjob.common.log.SnailJobLog;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.inspur.device.domain.SmsbDeviceHeartRecord;
+import com.inspur.device.mapper.SmsbDeviceHeartRecordMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 清理历史数据
+ *
+ * @author lihao16
+ */
+@Component
+@JobExecutor(name = "deleteHisData")
+public class DeleteHisDataExecutor {
+
+    @Autowired
+    private SmsbDeviceHeartRecordMapper smsbDeviceHeartRecordMapper;
+
+    public ExecuteResult jobExecute() {
+        SnailJobLog.REMOTE.info("deleteHisData job start...");
+        // 清理心跳数据 createTime 早于30天前的数据
+        int heartbeatCount = smsbDeviceHeartRecordMapper.delete(new LambdaQueryWrapper<SmsbDeviceHeartRecord>()
+                .lt(SmsbDeviceHeartRecord::getCreateTime, new java.util.Date(System.currentTimeMillis() - 30L * 24 * 60 * 60 * 1000)));
+        SnailJobLog.REMOTE.info("delete heartbeat record : " + heartbeatCount);
+
+        SnailJobLog.REMOTE.info("sourcePlaySummary job end...");
+        return ExecuteResult.success("sourcePlaySummary job execute success");
+    }
+
+}