随笔 - 936  文章 - 0  评论 - 3  阅读 - 30万

新版EasyGBS更新快照后刷新出现快照数据库内容丢失问题调整

我们的视频流媒体服务器诸如支持国标协议的EasyGBS、支持RTSP协议的EasyNVR流媒体平台,这些平台在做研发的时候,我们都做了快照界面,让用户观看的界面更加直观。

由于最近EasyGBS更新了新版内核,我们在对新版EasyGBS做通道测试时,发现通道刷新之后快照数据库内容字段就丢失了。

原本的快照内容显示正常:

刷新之后快照丢失:

这里我们分析应该是刷新时未对快照进行查询,从而导致通道更新的时候快照重新开始记录,但是快照的更新需要等待1分钟,因此刷新通道的前一分钟并无快照生成。

添加如下代码,当用户更新通道之后,去查询此时通道的快照数据是否有数据,如果要有的话,再去读取本地是否有这个文件,要是都符合条件,那就快照字段不更新,否则就更新。

if channel.Longitude == 0 && channel.Latitude == 0 {
   err = tx.Omit("ondemand", "record", "record_plan", "custom_id", "gbs_longitude", "gbs_latitude", "record_plan_switch", "audio", "cdn", "snap").Save(channel).Error
} else {
   err = tx.Omit("ondemand", "record", "record_plan", "custom_id", "record_plan_switch", "audio", "cdn", "snap").Save(channel).Error
}
if err != nil {
   log.Println("save channel error ", err.Error())
   tx.Rollback()
   return
}

检查快照更新,刷新通道后快照依然存在。

 

posted on   EasyGBS  阅读(30)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
历史上的今天:
2020-09-14 【解决方案】国家邮政局如何建立一套基于GB28181协议国标视频监控系统?
2020-09-14 海康硬盘录像机NVR如何接到国标GB28181协议国标视频云服务平台EasyGBS
2020-09-14 【解决方案】通过国标GB28181协议EasyGBS视频平台搭建的环境检测视频可视化监控方案
2020-09-14 关于国标GB28181流媒体协议视频平台EasyGBS设备无法接入平台的问题排查
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示