掌桥专利:专业的专利平台
掌桥专利
首页

数据传输方法及装置、设备和存储介质

文献发布时间:2023-06-19 16:04:54



技术领域

本申请涉及计算机视觉领域,涉及但不限定于数据传输方法及装置、设备和存储介质。

背景技术

在计算机视觉领域,普遍涉及到实时数据的传输。因此,实时数据的实时性和完整性具有比较重要的意义。实时数据的传输,业内通用的方案是基于TCP/IP(TransmissionControl Protocol/Internet Protocol,传输控制协议/网际协议)或者网络通讯协议。其数据的传输对网络的稳定性有较大的依赖。在数据量大、设备因素、硬件因素或者是不可控力因素(服务器断电)等影响的情况下,将不可避免地出现网络故障或服务器故障,导致实时数据传输中断。

发明内容

本申请实施例提供一种数据传输方法及装置、设备和存储介质。

本申请实施例的技术方案是这样实现的:

第一方面,本申请实施例提供一种数据传输方法,所述方法包括:

响应于第一实时数据传输失败,存储所述第一实时数据;按照特定周期重新传输所述第一实时数据;响应于所述第一实时数据被重新传输成功,按照预设速率阈值确定实时传输任务;所述实时传输任务至少包括第二实时数据的传输;所述第二实时数据为当前时间点下获取的。

在一些可能的实施方式中,所述响应于第一实时数据传输失败,存储所述第一实时数据,包括:获取所述数据发送端的存储阈值;响应于第一实时数据传输失败,基于所述存储阈值,按照时间戳顺序存储所述第一实时数据。

这样,通过确定实时数据的存储阈值,并按照时间顺序存储第一实时数据从而防止因网络故障持续时间过长期间的存储容量超限,而导致数据保存失败。

在一些可能的实施方式中,所述基于存储阈值,按照时间戳顺序存储所述第一实时数据,包括:确定所述数据发送端存储的数据总量;响应于所述数据总量大于所述存储阈值,删除所述时间戳早于特定时间的历史数据,以存储所述第一实时数据。

这样,在数据发送端保存的数据总量超出存储上限的情况下,将较早的历史数据剔除,以保存最新的实时数据,实现按照时间顺序保存第一实时数据,从而确保故障期间仅保存最新的实时数据,减少数据积压。

在一些可能的实施方式中,所述第一实时数据为视频源的抓拍图像,所述响应于所述数据总量大于所述存储阈值,删除所述时间戳早于特定时间的历史数据,以存储所述第一实时数据,包括:基于预设的每秒抓拍数、图像存储大小和所述存储阈值,确定所述数据发送端的满容周期N;响应于所述数据总量大于所述存储阈值,删除每个所述满容周期内第一天存储的抓拍图像,以存储第N+1天的抓拍图像。

这样,通过视频源设备对应的预设每秒抓拍数、图像存储大小等抓拍存储规则,估算出数据发送端的存储阈值对应的满容周期,从而在故障时长大于满容周期的情况下,直接删除时间戳最早的一天所存储的抓拍图像,从而保存最近一天即最新的抓拍图像,进而能够在尽量确保数据不丢失的情况下减少造成保存故障。

在一些可能的实施方式中,所述响应于所述第一实时数据被重新传输成功,按照预设速率阈值确定实时传输任务,包括:响应于所述第一实时数据被重新传输成功,获取当前时间点下的所述第二实时数据;确定所述第一实时数据和所述第二实时数据的优先级顺序;按照所述预设速率阈值和所述优先级顺序,确定所述实时传输任务。

这样,在限定的预设速率阈值下,通过确定第一实时数据和第二实时数据之间的优先权顺序,确定实时传输任务,以实现故障恢复后快速恢复实时数据的稳定传输。

在一些可能的实施方式中,所述优先级顺序为所述第二实时数据的优先级大于等于所述第一实时数据的优先级;所述按照所述预设速率阈值和优先级顺序,确定所述实时传输任务,包括:确定所述第二实时数据对应的第二传输速率;响应于所述第二传输速率大于等于所述预设速率阈值,按照所述预设速率阈值传输所述第二实时数据。

这样,按照预设速率阈值限制第一实时数据的第二传输速率,并以第二传输速率和预设速率阈值之间的较小者进行传输,从而优先保证当前时间点下第二实时数据的传输。

在一些可能的实施方式中,所述按照所述预设速率阈值和优先级顺序,确定所述实时传输任务,包括:确定所述第二实时数据对应的第二传输速率;响应于所述第二传输速率小于所述预设速率阈值,基于所述第二传输速率和所述预设速率阈值,确定所述第一实时数据的第一传输速率;按照所述第一传输速率和所述第二传输速率同时传输相应的所述第一实时数据和所述第二实时数据。

这样,在当前时间点下第二实时数据的传输未达到限制的预设速率阈值的前提下,按照预设速率阈值和第二传输速率限制第一实时数据对应的第一传输速率,并以各自的传输速率同时传输相应实时数据。实现了优先传输当前时间点下第二实时数据的同时,恢复历史时间点下的第一实时数据的传输。

在一些可能的实施方式中,所述方法还包括:响应于所述第一实时数据传输完成,按照所述第二传输速率传输所述第二实时数据。

这样,故障期间存储的第一实时数据传输完成即故障处理完毕的情况下,恢复第二实时数据以其对应的第二传输速率传输,从而恢复正常的传输过程,确保新的实时数据的稳定传输。

第二方面,本申请实施例提供一种数据传输装置,包括:

存储模块,用于响应于第一实时数据传输失败,存储所述第一实时数据;

重试模块,用于按照特定周期重新传输所述第一实时数据;

确定模块,用于响应于所述第一实时数据被重新传输成功,按照预设速率阈值确定实时传输任务;所述实时传输任务至少包括第二实时数据的传输;所述第二实时数据为当前时间点下获取的。

第三方面,本申请实施例提供一种数据传输设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据传输方法中的步骤。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据传输方法中的步骤。

本申请实施例提供的技术方案带来的有益效果至少包括:

在本申请实施例中,首先;响应于第一实时数据传输失败,存储所述第一实时数据;然后,按照特定周期重新传输所述第一实时数据;最后,响应于所述第一实时数据被重新传输成功,按照预设速率阈值确定实时传输任务;所述实时传输任务至少包括第二实时数据的传输;所述第二实时数据为当前时间点下获取的;如此,在数据传输失败后存储第一实时数据,并通过定时重试传输数据,实现故障恢复后的自动化恢复推送;同时按照预设速率阈值进行数据传输的方式,可以控制数据推送的峰值速度,从而避免因传输过快导致的二次故障。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请的技术方案。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本公开的技术方案,其中:

图1为本申请实施例提供的数据传输方法的示例性架构图;

图2为本申请实施例提供的数据传输方法的可选的流程示意图;

图3为本申请实施例提供的数据传输方法的可选的流程示意图;

图4为本申请实施例提供的数据传输方法的可选的流程示意图;

图5为本申请实施例提供的数据传输方法的可选的流程示意图;

图6为本申请实施例提供的数据传输方法的逻辑流程图;

图7为本申请实施例提供的一种数据传输装置的组成结构示意图;

图8为本申请实施例提供的一种数据传输设备的硬件实体示意图。

显而易见地,上面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。以下实施例用于说明本申请,但不用来限制本申请的范围。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

本文中术语‘和/或’,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,‘本文中术语至少一种’表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请实施例所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

图1示出了可以应用本申请的数据传输方法或数据传输装置的实施例的示例性系统架构100。如图1所示,系统架构100可以包括发送端设备101、网络102和接收端设备103。网络102用以在发送端设备101和接收端设备103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用发送端设备101通过网络102与接收端设备103交互,以接收或发送消息等。发送端设备101和接收端设备均可以是终端设备,也可以是服务器,其中终端设备上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等,服务器可以是提供各种服务的服务器。

终端设备可以是具有电子屏的电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。

在实施中,发送端设备101与接收端设备103通过网络102建立支持全双工通信的连接。发送端设备101向接收端设备103传输实时数据,例如发送端设备101根据传输周期向接收端设备103发送数据推送请求,其中推送请求携带实时数据以及数据大小、数据采集时间地点等信息;接收端设备103基于接收的实时数据进行计算机视觉分析。

需要说明的是,本申请实施例所提供的实时数据传输方法一般由数据发送端执行,相应地,实时数据传输装置一般设置于发送端设备101中。

应该理解,图1中的发送端设备、网络和接收端设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的发送端设备、网络和接收端设备。

在实际实施中,实时数据的传输对网络的稳定性有较大的依赖。在数据量大、设备因素、硬件因素或者是不可控力因素(服务器断电)等影响的情况下,将不可避免地出现网络故障或服务器故障,导致实时数据传输中断。在这种情况下,相关技术的应对措施是:1)故障期间丢弃数据,故障恢复后恢复最新(实时)数据的传输;2)故障期间停止传输,将数据保存,故障恢复后从原位置开始恢复传输。

上述第1种方案最简单,但缺点也是很明显,就是故障期间会造成数据丢失,不能保证数据的完整性;第2种方案虽然最大限度地保证数据完整性,但是对硬件有比较大的要求(故障期间数据积压,要求有足够大容量的数据存储方式),而且在数据积压的情况下,一旦恢复传输,有可能短时间内造成传输数据请求并发过大,导致的二次故障。另外,故障恢复后,当前的实时数据也无法马上恢复传输,因为数据首先恢复故障期间积压的部分。因此,故障恢复后,当前时间点的实时数据还不能马上恢复,给用户的感受是,需要一段时间才能恢复正常。

本申请实施例提供一种数据传输方法,应用于服务器、终端设备或其他设备。其中,所述终端设备包括但不限于手机、笔记本电脑、平板电脑和掌上上网设备、多媒体设备、流媒体设备、移动互联网设备、可穿戴设备或其他类型的设备。

图2为本申请实施例提供的数据传输方法的可选的流程示意图,如图2所示,所述方法至少包括以下步骤:

步骤S210,响应于第一实时数据传输失败,存储所述第一实时数据;

这里,所述第一实时数据可以为抓拍数据,例如摄像头采集的人脸图像;也可以为客户端向服务器请求的JSON(Java Script Object Notation,基于JavaScript语言的轻量级的数据交换格式)数据。本申请实施例对实时数据的形式不作限定。

在一些实施方式中,可以通过向接收端发送推送请求,判断规定时间内是否收到接收端返回的响应,从而确定第一实时数据传输失败;在另一些实施方式中,对比多组实时数据的传输速率,判断第一实时数据的传输速率明显下降或几乎为零的情况下,确定第一实时数据传输失败。在无法正常传输实时数据的情况下,为了防止实时数据丢失,需要将实时数据保存起来。

值得注意的是,实时数据的传输对网络的稳定性有较大的依赖。在数据量大、设备因素、硬件因素或者是不可控力因素(服务器断电)等影响的情况下,将不可避免地出现网络故障或服务器故障,导致实时数据的传输失败或中断。通过将网络故障期间的实时数据保存,可以最大限度地保证数据完整性,减少数据丢失。

需要说明的是,通常将实时数据保存在数据库中,例如,Redis数据库。Redis数据库是一个开源的支持网络、可基于内存亦可持久化的日志型、键-值存储(key-valuestore)数据库,并提供多种语言的API(Application Programming Interface,应用程序编程接口)。

步骤S220,按照特定周期重新传输所述第一实时数据;

这里,所述特定周期通过业务需求进行配置,也可根据设置的重试频率及重试次数确定。

示例地,所述特定周期可以为10分钟,则在数据传输失败之后每间隔10分钟,重试传输一次,这样可以确保在故障恢复的10分钟内即恢复实时数据的传输。

在一些实施方式中,可以通过以下方式实现上述过程:获取当前时间点;判断所述当前时间点与上次重试的时间点之间的时间差是否为特定周期的整数倍;在判断结果为是的情况下,重新传输第一实时数据。

在一些实施方式中,还可以通过以下方式实现上述过程:确定当前业务系统中运行的至少一个传输线程;基于至少一个传输线程,判断用于重新传输所述第一实时数据的特定线程是否启动;在判断结果为是的情况下,则重新传输第一实时数据。

步骤S230,响应于所述第一实时数据被重新传输成功,按照预设速率阈值确定实时传输任务;

这里,所述第一实时数据被重新传输成功,表明故障恢复,此时按照预设速率阈值确定实时传输任务即限制实时数据的传输速率,可以缓解因数据积压导致故障恢复瞬间推送数据请求并发、瞬时数据传输过大的问题,减少二次故障的出现。

所述实时传输任务至少包括第二实时数据的传输;所述第二实时数据为当前时间点下获取的。也就是说,在故障恢复之后优先确保当前时间点下的实时数据传输。这样,用户在体验上能够立马感知到数据传输过程恢复。

在本申请实施例中,首先;响应于第一实时数据传输失败,存储所述第一实时数据;然后,按照特定周期重新传输所述第一实时数据;最后,响应于所述第一实时数据被重新传输成功,按照预设速率阈值确定实时传输任务;所述实时传输任务至少包括第二实时数据的传输;所述第二实时数据为当前时间点下获取的;如此,在数据传输失败后存储第一实时数据,并通过定时重试传输数据,实现故障恢复后的自动化恢复推送;同时按照预设速率阈值进行数据传输的方式,可以控制数据推送的峰值速度,从而避免因传输过快导致的二次故障。

图3为本申请实施例提供的数据传输方法的可选的流程示意图,如图3所示,所述方法至少包括以下步骤:

步骤S310,获取所述数据发送端的存储阈值;

这里,所述存储阈值为数据发送端针对实时数据的存储容量的上限值,在网络故障持续的时间过长,且期间存储的实时数据超过该存储阈值的情况下,会导致后面的实时数据保存失败。

步骤S320,响应于第一实时数据传输失败,基于所述存储阈值,按照时间戳顺序存储所述第一实时数据;

这里,为了防止故障期间的实时数据丢失以及超额数据保存失败,此时会将第一实时数据按时间顺序保存起来。

也就是说,受限于存储阈值的情况下,故障期间产生的实时数据只保存时间戳最近即最新产生的实时数据,即将时间戳最早的实时数据剔除,同时添加时间戳最新的实时数据。

在一些实施方式中,通过以下方式实现上述步骤S320:确定所述数据发送端传输数据的故障时长;响应于所述故障时长大于所述存储阈值对应的满容周期,删除所述时间戳早于所述满容周期对应的最早时间点的历史数据,以存储所述第一实时数据。

这样,在数据发送端传输数据的故障时长超出满容周期的情况下,将较早的历史数据剔除,以保存最新的实时数据,实现按照时间顺序保存第一实时数据,从而确保故障期间仅保存最新的实时数据,减少数据积压。

示例地,发送端设备的存储容量(对应存储阈值)仅能够保存7天(对应满容周期)的实时数据,则故障期间小于7天的情况下不会造成数据丢失;故障期间超过7天的情况下会优先保存最近7天的实时数据,从而避免产生保存故障。

在一些实施方式中,通过以下方式实现上述步骤S320:确定所述数据发送端存储的数据总量;响应于所述数据总量大于所述存储阈值,删除所述时间戳早于特定时间的历史数据,以存储所述第一实时数据。

这样,在数据发送端保存的数据总量超出存储上限的情况下,将较早的历史数据剔除,以保存最新的实时数据,实现按照时间顺序保存第一实时数据,从而确保故障期间仅保存最新的实时数据,减少数据积压。

在一些可能的实施方式中,所述第一实时数据为视频源的抓拍图像,所述响应于所述数据总量大于所述存储阈值,删除所述时间戳早于特定时间的历史数据,以存储所述第一实时数据,包括:基于预设的每秒抓拍数、图像存储大小和所述存储阈值,确定所述数据发送端的满容周期N;响应于所述数据总量大于所述存储阈值,删除每个所述满容周期内第一天存储的抓拍图像,以存储第N+1天的抓拍图像。

其中,所述预设的每秒抓拍数可以基于业界的计算标准,每路视频每秒的人像数据是两张;在实际实施中,还可以根据实际情况,由于不同位置的人流量差异,统计多天多个视频源位置的累计抓拍数,计算平均的每秒抓拍数。所述图像存储大小一般为100k,也可以根据实际需要,将重要视频源的抓拍图像保存为更高清的图像数据,本申请实施例对此不作限定。

这样,通过视频源设备对应的预设每秒抓拍数、图像存储大小等抓拍存储规则,估算出数据发送端的存储阈值对应的满容周期,从而在故障时长大于满容周期的情况下,直接删除时间戳最早的一天所存储的抓拍图像,从而保存最近一天即最新的抓拍图像,进而能够在尽量确保数据不丢失的情况下减少造成保存故障。

步骤S330,按照特定周期重新传输所述第一实时数据;

步骤S340,响应于所述第一实时数据被重新传输成功,按照预设速率阈值确定实时传输任务;

这里,所述实时传输任务至少包括第二实时数据的传输;所述第二实时数据为当前时间点下获取的。

在本申请实施例中,通过确定实时数据的存储阈值,并按照时间顺序存储第一实时数据,从而防止因网络故障持续时间过长期间的存储容量超限,而导致数据保存失败。进一步地,在数据发送端保存的数据总量超出存储上限的情况下,将较早的历史数据剔除,以保存最新的实时数据,实现按照时间顺序保存第一实时数据,从而确保故障期间仅保存最新的实时数据,减少数据积压。

图4为本申请实施例提供的数据传输方法的可选的流程示意图,如图4所示,所述方法至少包括以下步骤:

步骤S410,响应于第一实时数据传输失败,存储所述第一实时数据;

步骤S420,按照特定周期重新传输所述第一实时数据;

步骤S430,响应于所述第一实时数据被重新传输成功,获取当前时间点下的所述第二实时数据;

这里,所述第一实时数据被重新传输成功,表明故障恢复,此时进入故障恢复处理过程,需要同时考虑历史时间点下存储的第一实时数据和当前时间点下待传输的第二实时数据。

步骤S440,确定所述第一实时数据和所述第二实时数据的优先级顺序;

这里,可以预先设置第一实时数据和第二实时数据各自的优先级等级,从而在故障恢复瞬间快速确定出优先级顺序。

步骤S450,按照所述预设速率阈值和所述优先级顺序,确定所述实时传输任务。

这里,按照预设速率阈值确定实时传输任务即限制实时数据的传输速率,可以缓解因数据积压导致故障恢复瞬间推送数据请求并发、瞬时数据传输过大的问题,减少二次故障的出现。

在本申请实施例中,在限定的预设速率阈值下,通过确定第一实时数据和第二实时数据之间的优先权顺序,确定实时传输任务,以实现故障恢复后快速恢复实时数据的稳定传输。

在一些实施例中,所述优先级顺序为所述第二实时数据的优先级大于等于所述第一实时数据的优先级。基于图4,图5为本申请实施例提供的数据传输方法的可选的流程示意图,如图5所示,上述步骤S450可以通过以下步骤实现:

步骤S510,确定所述第二实时数据对应的第二传输速率;

这里,所述第二实时数据为当前时间点下待传输的数据。

在一些实施方式中,以视频采集设备为例,所述第二实时数据为当前抓拍的人脸图像,所述第二传输速率可以通过相关领域的计算标准确定。例如对于接入1000路的视频设备,每路视频每秒的人脸图像是2张,从而该视频设备针对当前实时数据的第二传输速率为2000张/秒。

在另一些实施方式中,根据业务需求和视频源的位置确定所述第二传输速率,例如视频采集设备安装在人流量比较大的景点或游乐场所,基于视频分析的需求,则针对实时采集的人脸图像的第二传输速率会更大一些。因此,可以统计固定时间段下人脸图像实时传输的平均传输速率作为第二传输速率,例如计算连续多天的累计获取的人脸图像数量以及天数,进而求取平均每秒传输的人脸图像数量作为第二传输速率。

步骤S520,响应于所述第二传输速率大于等于所述预设速率阈值,按照所述预设速率阈值传输所述第二实时数据;

这里,在故障恢复瞬间即当前时间点下数据的第二传输速率过高的情况下,为避免数据推送请求并发数过大引起二次故障,按照设定的预设速率阈值限制第二实时数据的传输。

步骤S530,响应于所述第二传输速率小于所述预设速率阈值,基于所述第二传输速率和所述预设速率阈值,确定所述第一实时数据的第一传输速率;

这里,在当前时间点的第二实时数据的传输未达到限定的预设速率阈值的前提下,开启故障期间积压的第一实时数据的传输,并通过第二传输速率和预设速率阈值,推算第一实时数据的第一传输速率。

步骤S540,按照所述第一传输速率和所述第二传输速率同时传输相应的所述第一实时数据和所述第二实时数据;

这里,在以第二传输速率传输第二实时数据的同时,以第一传输速率传输第一实时数据。这样,确保故障恢复瞬间优先保证当前时间点的第二实时数据传输,同时以预设速率阈值为限,将历史时间点的第一实时数据一并传输,解决瞬时推送请求并发过大的问题。

例如,夜间产生的抓拍数据即第二实时数据较少,相应地的第二传输速率较小,可以根据预设速率阈值和第二传输速率的差值,传输历史时间点如白天积压的第一实时数据。

示例地,设定预设速率阈值为100/秒,则每秒传输的抓拍数据如人脸图像不超过100张。在当前时间点下抓拍数据的传输速率只有30/秒(第二传输速率)的情况下,由于30/秒小于100/秒,则数据发送端会以不大于70/秒的传输速率(第一传输速率)启动历史抓拍数据的传输,并确保历史抓拍数据+实时抓拍数据的传输速度不超过100张/秒。

步骤S550,响应于所述第一实时数据传输完成,按照所述第二传输速率传输所述第二实时数据。

这里,故障期间存储的第一实时数据传输完成即故障处理完毕的情况下,恢复第二实时数据以其对应的第二传输速率传输,从而恢复正常的传输过程,确保新的实时数据的稳定传输。

在本申请实施例中,按照预设速率阈值限制第一实时数据的第一传输速率,并以第二传输速率和预设速率阈值之间的较小者进行传输,从而优先保证当前时间点下第二实时数据的传输。另外,在当前时间点下第二实时数据的第二传输速率未达到限制的预设速率阈值的前提下,按照预设速率阈值和第二传输速率限制第一实时数据对应的第一传输速率,并以各自的传输速率同时传输相应实时数据。实现了优先传输当前时间点下第二实时数据的同时,恢复历史时间点下的第一实时数据的传输。

下面结合一个具体实施例对上述数据传输方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。

本申请具体示例以一次故障过程为例进行说明,图6为本申请实施例提供的数据传输方法的逻辑流程图,如图6所示,所述方法包括以下步骤:

步骤S610,响应于第一抓拍数据传输失败,保存第一抓拍数据;

这里,所述第一抓拍数据相当于前述第一实时数据,在遇到网络故障的情况下,实时抓拍数据将无法进行传输,为了防止数据丢失,会自动保存传输失败的第一抓拍数据到本地,从而确保故障期间的实时数据的完整性。

需要说明的是,在数据发送端遇到网络故障的期间,数据接收端依然在接收数据,同时在数据发送端开启定时重试线程,用于定时向数据接收端推送传输失败的第一抓拍数据。也就是说,为了实现自动化恢复,开启定时重试任务,一旦故障恢复即恢复所保存的数据的传输。

步骤S620,响应于存储的数据总量超出存储阈值,将时间戳最早的历史抓拍数据删除,替换为时间戳最新的第一抓拍数据;

这里,所述时间戳最早的历史抓拍数据相当于历史数据。当网络故障持续的时间过长,这期间的实时数据存储超限,会自动删除掉最早的历史数据,并添加最新的第一抓拍数据。

相比于相关技术中直接将故障期间的实时数据丢失或者数据积压导致数据存储超限,保存失败;本申请实施例提出一种故障期间数据保存机制,按时间顺序保存实时数据,当存储超限,剔除掉最旧的历史数据,并添加最新的实时数据。

步骤S630,响应于第一抓拍数据重新传输成功,优先传输当前时间点下的第二抓拍数据;

这里,第一抓拍数据重新传输成功表明前述重试任务完成,故障恢复,此时进入故障恢复处理,优先保证当前时间点下的实时抓拍数据的传输,用户在体验上,能够马上感知到实时数据的恢复。

步骤S640,基于配置的预设速率阈值,同时传输第一抓拍数据;

这里,通过设置预设速率阈值即最大传输速率的方式,控制数据传输的峰值速度,从而避免因传输过快导致的二次故障。在第二抓拍数据的传输速率没达到特定速度的前提下,开启故障期间积压的第一抓拍数据的推送,并满足公式:第一抓拍数据的传输速率+第二抓拍数据的传输速率<=预设速率阈值。

相比于相关技术中先补录故障期间存储的第一抓拍数据或者直接丢弃第一抓拍数据,本申请实施例在保证当前时间点下第二抓拍数据的传输前提下,按照预设速率阈值,恢复历史时间点积压的数据补录,避免因数据积压,瞬时数据传输过大,可能会引起二次故障。

步骤S650,响应于第一抓拍数据传输完成,完成故障处理过程。

这里,当积压的第一抓拍数据传输完成,则故障处理及恢复的过程完成。

本申请实施例预先定义好故障抓拍数据的存储阈值,并在抓拍数据传输失败的同时开启数据重试任务,

本申请实施例提出一种故障恢复机制,优先保证实时抓拍数据的传输,并根据速度,恢复历史数据的补录。因此,用户在体验上,能够从数据上马上感知到数据的恢复。同时,历史数据补录将更多地在夜间实时抓拍少的时候补录,从而解决瞬时传输量大的问题,不影响白天数据的正常传输。

本申请实施例可以适用于人脸识别类产品中、实时视频流的综合分析类产品等涉及图像实时传输的各种应用场景中。

上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于前述的实施例,本申请实施例再提供一种数据传输装置,所述装置包括所包括的各模块、各模块所包括的子模块以及各子模块所包括的各单元,可以通过设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processing Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field ProgrammableGate Array,FPGA)等。

图7为本申请实施例提供的一种数据传输装置的组成结构示意图,如图7所示,所述装置700包括:存储模块710、重试模块720和确定模块730,其中:

所述存储模块710,用于响应于第一实时数据传输失败,存储所述第一实时数据;

所述重试模块720,用于按照特定周期重新传输所述第一实时数据;

所述确定模块730,用于响应于所述第一实时数据被重新传输成功,按照预设速率阈值确定实时传输任务;所述实时传输任务至少包括第二实时数据的传输;所述第二实时数据为当前时间点下获取的。

在一些可能的实施方式中,所述存储模块710包括获取子模块和存储子模块,其中:所述获取子模块,用于获取所述数据发送端的存储阈值;所述存储子模块,用于响应于第一实时数据传输失败,基于所述存储阈值,按照时间戳顺序存储所述第一实时数据。

在一些可能的实施方式中,所述存储子模块包括第一确定单元和存储单元,其中:所述第一确定单元,用于确定所述数据发送端存储的数据总量;响应于所述数据总量大于所述存储阈值,删除所述时间戳早于特定时间的历史数据,以存储所述第一实时数据。

在一些可能的实施方式中,所述确定模块730包括获取子模块、第一确定子模块和第二确定子模块,其中:所述获取子模块,用于响应于所述第一实时数据被重新传输成功,获取当前时间点下的所述第二实时数据;所述第一确定子模块,用于确定所述第一实时数据和所述第二实时数据的优先级顺序;所述第二确定子模块,用于按照所述预设速率阈值和所述优先级顺序,确定所述实时传输任务。

在一些可能的实施方式中,所述优先级顺序为所述第二实时数据的优先级大于等于所述第一实时数据的优先级;所述第二确定子模块包括第二确定单元和传输单元,其中:所述第二确定单元,用于确定所述第二实时数据对应的第二传输速率;响应于所述第二传输速率大于等于所述预设速率阈值,按照所述预设速率阈值传输所述第二实时数据。

在一些可能的实施方式中,所述第二确定子模块包括第三确定单元、第四确定单元和传输单元,其中:所述第三确定单元,用于确定所述第二实时数据对应的第二传输速率;所述第四确定单元,用于响应于所述第二传输速率小于所述预设速率阈值,基于所述第二传输速率和所述预设速率阈值,确定所述第一实时数据的第一传输速率;所述传输单元,用于按照所述第一传输速率和所述第二传输速率同时传输相应的所述第一实时数据和所述第二实时数据。

在一些可能的实施方式中,所述装置还包括传输模块,用于响应于所述第一实时数据传输完成,按照所述第二传输速率传输所述第二实时数据。

这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述数据传输方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得设备(可以是具有摄像头的智能手机、平板电脑等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中任一所述数据传输方法中的步骤。对应地,本申请实施例中,还提供了一种芯片,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时,用于实现上述实施例中任一所述数据传输方法中的步骤。对应地,本申请实施例中,还提供了一种计算机程序产品,当该计算机程序产品被设备的处理器执行时,其用于实现上述实施例中任一所述数据传输方法中的步骤。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

基于同一技术构思,本申请实施例提供一种数据传输设备,用于实施上述方法实施例记载的数据传输方法。图8为本申请实施例提供的一种数据传输设备的硬件实体示意图,如图8所示,所述设备800包括存储器810和处理器820,所述存储器810存储有可在处理器820上运行的计算机程序,所述处理器820执行所述程序时实现本申请实施例任一所述数据传输方法中的步骤。

存储器810配置为存储由处理器820可执行的指令和应用,还可以缓冲待处理器820以及设备中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。

处理器820执行程序时实现上述任一项的数据传输方法的步骤。处理器820通常控制设备800的总体操作。

上述处理器可以为特定用途集成电路(Application Specific IntegratedCircuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Programmable LogicDevice,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。

上述计算机存储介质/存储器可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。

这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本申请实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得设备自动测试线执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120114698122