mirror of
https://gitee.com/pan648540858/wvp-GB28181-pro.git
synced 2026-05-24 14:07:50 +08:00
Compare commits
3 Commits
a33e7949a4
...
2bdced8b9c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2bdced8b9c | ||
|
|
27b06a84d7 | ||
|
|
4067dcf8d1 |
@ -80,8 +80,8 @@ public class KeepaliveNotifyMessageHandler extends SIPRequestProcessorParent imp
|
||||
device.setLocalIp(request.getLocalAddress().getHostAddress());
|
||||
}
|
||||
device.setKeepaliveTimeStamp(System.currentTimeMillis());
|
||||
taskQueue.add(device);
|
||||
if (device.isOnLine()) {
|
||||
taskQueue.add(device);
|
||||
long expiresTime = Math.min(device.getExpires(), device.getHeartBeatInterval() * device.getHeartBeatCount()) * 1000L;
|
||||
deviceStatusManager.add(device.getDeviceId(), expiresTime + System.currentTimeMillis());
|
||||
} else {
|
||||
|
||||
@ -561,9 +561,14 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
|
||||
public Boolean execute(@NonNull RedisOperations operations) {
|
||||
// 1. 批量添加心跳数据到列表尾部
|
||||
for (Device device : deviceList) {
|
||||
operations.opsForList().rightPush(VideoManagerConstants.DEVICE_KEEPALIVE_PREFIX + device.getDeviceId(), device.getKeepaliveTimeStamp());
|
||||
Duration duration = Duration.ofHours(1);
|
||||
String key = VideoManagerConstants.DEVICE_KEEPALIVE_PREFIX + device.getDeviceId();
|
||||
operations.opsForList().rightPush(key, device.getKeepaliveTimeStamp());
|
||||
// 2. 截取列表,只保留最新 100 条
|
||||
operations.opsForList().trim((VideoManagerConstants.DEVICE_KEEPALIVE_PREFIX + device.getDeviceId()), -1000, -1);
|
||||
operations.opsForList().trim(key, -100, -1);
|
||||
|
||||
// 为整个列表 Key 设置过期时间(核心:覆盖式设置,每次更新心跳都重置过期时间)
|
||||
operations.expire(key, duration);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -580,7 +585,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
|
||||
if (count == null) {
|
||||
count = 20;
|
||||
}
|
||||
return longRedisTemplate.opsForList().range(VideoManagerConstants.DEVICE_KEEPALIVE_PREFIX + deviceId, 0, count + 1);
|
||||
return longRedisTemplate.opsForList().range(VideoManagerConstants.DEVICE_KEEPALIVE_PREFIX + deviceId, -count - 1, -1);
|
||||
}
|
||||
|
||||
|
||||
@ -597,9 +602,15 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
|
||||
public Boolean execute(@NonNull RedisOperations operations) {
|
||||
// 1. 批量添加心跳数据到列表尾部
|
||||
for (Device device : deviceList) {
|
||||
operations.opsForList().rightPush(VideoManagerConstants.DEVICE_REGISTER_PREFIX + device.getDeviceId(), device.getRegisterTimeStamp());
|
||||
Duration duration = Duration.ofHours(3);
|
||||
String key = VideoManagerConstants.DEVICE_REGISTER_PREFIX + device.getDeviceId();
|
||||
operations.opsForList().rightPush(key, device.getRegisterTimeStamp());
|
||||
// 2. 截取列表,只保留最新 100 条
|
||||
operations.opsForList().trim((VideoManagerConstants.DEVICE_REGISTER_PREFIX + device.getDeviceId()), -1000, -1);
|
||||
operations.opsForList().trim(key, -100, -1);
|
||||
|
||||
// 为整个列表 Key 设置过期时间(核心:覆盖式设置,每次更新心跳都重置过期时间)
|
||||
operations.expire(key, duration);
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -615,6 +626,6 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
|
||||
if (count == null) {
|
||||
count = 20;
|
||||
}
|
||||
return longRedisTemplate.opsForList().range(VideoManagerConstants.DEVICE_REGISTER_PREFIX + deviceId, 0, count + 1);
|
||||
return longRedisTemplate.opsForList().range(VideoManagerConstants.DEVICE_REGISTER_PREFIX + deviceId, -count - 1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
v-if="viewMode === 'table'"
|
||||
:data="list"
|
||||
border
|
||||
stripe
|
||||
size="mini"
|
||||
height="400px"
|
||||
style="width: 100%;"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user