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

本文讲述了在EasyGBS视频流媒体服务器升级后,如何通过优化代码解决通道刷新时快照数据丢失的问题,确保用户界面的实时性和数据一致性。通过检查并仅在有快照数据时更新,避免了快照重建带来的延迟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

image.png

刷新之后快照丢失:

image.png

这里我们分析应该是刷新时未对快照进行查询,从而导致通道更新的时候快照重新开始记录,但是快照的更新需要等待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
}

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

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值