xiangpei
2024-09-10 96ca0ff98704ac35546a120fea0224ac4373a7ed
清理redis中的离线次数定时任务
2个文件已修改
1个文件已添加
34 ■■■■■ 已修改文件
ycl-common/src/main/java/constant/RedisConstant.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/ClearRedisTask.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/constant/RedisConstant.java
@@ -8,6 +8,6 @@
    public final static String Check_Face_ViewConnect = "FaceViewConnectNoData";
    /** 点位在线,hash的key */
    public final static String ONLINE_PREFIX = "ONLINE_";
    public final static String ONLINE_KEY = "ONLINE_";
}
ycl-server/src/main/java/com/ycl/task/ClearRedisTask.java
New file
@@ -0,0 +1,28 @@
package com.ycl.task;
import constant.RedisConstant;
import lombok.RequiredArgsConstructor;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
/**
 * 定时清理redis中的数据
 *
 * @author:xp
 * @date:2024/9/10 15:26
 */
@RequiredArgsConstructor
@Component("clearRedisTask")
public class ClearRedisTask {
    private final RedisTemplate redisTemplate;
    /**
     * 清除在线监测的redis计离线次数
     *
     */
    public void clearOnlineData() {
        redisTemplate.delete(RedisConstant.ONLINE_KEY);
    }
}
ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java
@@ -105,13 +105,13 @@
            vo.setOnline(reachable);
        }
        if (!vo.getOnline()) {
            Integer outLineTimes = (Integer) redisTemplate.opsForHash().get(RedisConstant.ONLINE_PREFIX, monitor.getIp());
            Integer outLineTimes = (Integer) redisTemplate.opsForHash().get(RedisConstant.ONLINE_KEY, monitor.getIp());
            if (Objects.isNull(outLineTimes)) {
                outLineTimes = 1;
            } else {
                outLineTimes += 1;
            }
            redisTemplate.opsForHash().put(RedisConstant.ONLINE_PREFIX, monitor.getIp(), outLineTimes);
            redisTemplate.opsForHash().put(RedisConstant.ONLINE_KEY, monitor.getIp(), outLineTimes);
            // 一天内监测到离线1次以上,生成工单
            if (outLineTimes >= times) {
                WorkOrder workOrder = new WorkOrder();