mirror of
https://gitee.com/pan648540858/wvp-GB28181-pro.git
synced 2026-05-26 23:17: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.setLocalIp(request.getLocalAddress().getHostAddress());
|
||||||
}
|
}
|
||||||
device.setKeepaliveTimeStamp(System.currentTimeMillis());
|
device.setKeepaliveTimeStamp(System.currentTimeMillis());
|
||||||
|
taskQueue.add(device);
|
||||||
if (device.isOnLine()) {
|
if (device.isOnLine()) {
|
||||||
taskQueue.add(device);
|
|
||||||
long expiresTime = Math.min(device.getExpires(), device.getHeartBeatInterval() * device.getHeartBeatCount()) * 1000L;
|
long expiresTime = Math.min(device.getExpires(), device.getHeartBeatInterval() * device.getHeartBeatCount()) * 1000L;
|
||||||
deviceStatusManager.add(device.getDeviceId(), expiresTime + System.currentTimeMillis());
|
deviceStatusManager.add(device.getDeviceId(), expiresTime + System.currentTimeMillis());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -561,9 +561,14 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
|
|||||||
public Boolean execute(@NonNull RedisOperations operations) {
|
public Boolean execute(@NonNull RedisOperations operations) {
|
||||||
// 1. 批量添加心跳数据到列表尾部
|
// 1. 批量添加心跳数据到列表尾部
|
||||||
for (Device device : deviceList) {
|
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 条
|
// 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;
|
return true;
|
||||||
}
|
}
|
||||||
@ -580,7 +585,7 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
|
|||||||
if (count == null) {
|
if (count == null) {
|
||||||
count = 20;
|
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) {
|
public Boolean execute(@NonNull RedisOperations operations) {
|
||||||
// 1. 批量添加心跳数据到列表尾部
|
// 1. 批量添加心跳数据到列表尾部
|
||||||
for (Device device : deviceList) {
|
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 条
|
// 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;
|
return true;
|
||||||
}
|
}
|
||||||
@ -615,6 +626,6 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
|
|||||||
if (count == null) {
|
if (count == null) {
|
||||||
count = 20;
|
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'"
|
v-if="viewMode === 'table'"
|
||||||
:data="list"
|
:data="list"
|
||||||
border
|
border
|
||||||
|
stripe
|
||||||
size="mini"
|
size="mini"
|
||||||
height="400px"
|
height="400px"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user