优化获取这个智能体设备理的最近的最后连接时间方法,缓存时间和设备数量

--DeviceServiceImpl.java 优化方法
This commit is contained in:
剑雨
2025-04-30 11:05:58 +08:00
parent 7d74e853ae
commit 6f7ff9f858
@@ -255,8 +255,19 @@ public class DeviceServiceImpl extends BaseServiceImpl<DeviceDao, DeviceEntity>
@Override
public Date getLatestLastConnectionTime(String agentId) {
// 查询是否有缓存时间,有则返回
Date cachedDate = (Date) redisUtils.get(RedisKeys.getAgentDeviceLastConnectedAtById(agentId));
if (cachedDate != null) {
return cachedDate;
}
List<Date> list = deviceDao.getAllLastConnectedAtByAgentId(agentId);
return Collections.max(list, Comparator.comparing(Date::getTime));
Date maxDate = Collections.max(list, Comparator.comparing(Date::getTime));
// 将结果存入Redis, 存储设备最近最后连接时间,和设备数量
redisUtils.set(RedisKeys.getAgentDeviceCountById(agentId), list.size(), 60);
if (maxDate != null) {
redisUtils.set(RedisKeys.getAgentDeviceLastConnectedAtById(agentId), maxDate, 60);
}
return maxDate;
}
private String getDeviceCacheKey(String deviceId) {