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

数据发送方法、装置、设备和介质

文献发布时间:2023-06-19 11:52:33


数据发送方法、装置、设备和介质

技术领域

本发明实施例涉及数据传输技术领域,尤其涉及一种数据发送方法、装置、设备和介质。

背景技术

现有的数据传输系统由数据发送端、数据接收端和数据队列三部分共同组成,数据发送端用于从各数据源中抽取业务数据并写入数据队列,数据接收端用于从数据队列中接收各业务数据并执行业务操作。

然而现有数据传输系统通常只包含一条数据队列,当业务数据量巨大时,会造成数据传输速度过慢的问题,成为数据传输系统性能的瓶颈。

发明内容

本发明实施例提供一种数据发送方法、装置、设备和介质,以解决现有通过单队列数据传输,存在数据传输过慢的问题。

第一方面,本发明实施例提供了一种数据发送方法,所述方法包括:

获取目标数据的标识信息,并根据所述标识信息,从已有候选数据队列中选择目标数据队列;

将所述目标数据写入所述目标数据队列中,用于通过所述目标数据队列将所述目标数据发送给目标接收设备。

第二方面,本发明实施例提供了一种数据发送装置,所述装置包括:

数据队列选择模块,用于获取目标数据的标识信息,并根据所述标识信息,从已有候选数据队列中选择目标数据队列;

数据发送模块,用于将所述目标数据写入所述目标数据队列中,用于通过所述目标数据队列将所述目标数据发送给目标接收设备。

第三方面,本发明实施例提供了一种设备,所述设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的数据发送方法。

第四方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据发送方法。

本发明实施例通过获取目标数据的标识信息,并根据标识信息从已有的数据队列中选择目标数据队列,最终将目标数据写入目标数队列并发送给目标接收设备,实现了多队列同时传输数据,且能够保证数据传输有序的技术效果。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明实施例一提供的一种数据发送方法的流程图;

图2为本发明实施例二提供的一种数据发送方法的流程图;

图3为本发明实施例三提供的一种数据发送装置的结构示意图;

图4为本发明实施例四提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的结构而非全部结构。

实施例一

图1是本发明实施例一提供的一种数据发送方法的流程图。本实施例适用于业务端向目标接收设备发送数据信息的情况,该方法可以由本发明实施例提供的数据发送装置来执行,所述数据发送装置可以由软件和/或硬件的方式来实现。如图1所示,该方法可以包括:

步骤101、获取目标数据的标识信息,并根据所述标识信息,从已有候选数据队列中选择目标数据队列。

其中,目标数据即待发送数据,是供目标设备执行不同业务操作的业务数据,目标数据的格式包括但不限于JSON、XML和YAML等。目标数据的标识信息是一种业务标识信息,是目标数据在特定业务下的固有属性,具有相同标识信息的数据表示属于同一业务,例如“控制相机上线”和“控制相机下线”两种数据具有相同的标识信息,同属于“相机启停业务”;又例如“控制相机对焦”和“控制相机拍摄”两种数据具有相同的标识信息,同属于“相机拍摄业务”。候选数据队列的本质为一种特殊的线性表,其允许在其表的前端进行删除操作,而在表的后端进行插入操作,即进行删除操作的端为队头,进行插入操作的端称为队尾,以实现在候选数据队列中进行目标数据写入和目标数据发送的操作。候选数据队列的个数可在内存大小允许范围内任意设置,在本实施例中候选队列的个数至少为两个。

具体的,读取业务端关联的数据源中存储的各目标数据,并遍历访问所有目标数据的标志位,以获取各目标数据的标识信息,其中,访问目标数据标志位的方法包括但不限于synchronized同步访问法。根据标识信息,按照预设的标识信息与候选数据队列的对应关系,或者预设的数据队列选择规则,从候选队列中选择目标数据队列。其中预设的标识信息与候选数据队列的对应关系可选的包括一个候选数据队列对应唯一的标识信息或者一个候选数据队列对应多个标识信息等等。

可选的,步骤101中“根据所述标识信息,从已有候选数据队列中选择目标数据队列”,包括:对所述标识信息进行哈希计算,以确定哈希计算结果;根据所述哈希计算结果,以及已有候选数据队列的总数,确定目标数据队列。

可选的,步骤101中“根据所述标识信息,从已有候选数据队列中选择目标数据队列”,还包括:根据预设的标识信息与候选数据队列的对应关系,确定所述标识信息在候选数据队列中对应的目标数据队列。

例如,预设的标识信息“0000”~“0009”对应候选数据队列中的候选数据队列1,“0010”~“0019”对应候选数据队列中的候选数据队列2,“0020”~“0029”对应候选数据队列中的候选数据队列3,以此类推。假设目标数据的标识信息为“0005”,则目标数据的目标数据队列为候选数据队列1;假设目标数据的标识信息为“0013”,则目标数据的目标数据队列为候选数据队列2;假设目标数据的标识信息为“0027”,则目标数据的目标数据队列为候选数据队列3。

通过获取目标数据的标识信息,为后续根据标识信息从已有候选数据队列中选择目标数据队列,奠定了基础;通过根据标识信息,从已有候选数据队列中选择目标数据队列,为后续将目标数据写入对应的目标数据队列奠定了基础,保证了具有相同标识信息的目标数据的有序发送。

步骤102、将所述目标数据写入所述目标数据队列中,用于通过所述目标数据队列将所述目标数据发送给目标接收设备。

具体的,将目标数据从对应的数据源中进行提取,并写入对应的目标数据队列的队尾处,目标数据写入的形式包括多线程同步写入。当存在多个目标数据需要写入同一个目标数据队列时,写入的先后顺序是根据业务端的预设逻辑来确定的,例如业务端的预设逻辑为执行“相机上线操作”后再执行“相机下线操作”,则从数据源中提取出“相机上线操作”和“相机下线操作”分别对应的目标数据后,先将“相机上线操作”对应的目标数据写入目标数据队列,再将“相机下线操作”对应的目标数据写入目标数据队列。目标数据队列对应的目标接收设备根据目标数据队列中各数据的写入顺序,从队首依次的取出各数据,即实现通过目标数据队列将目标数据发送给目标设备的效果。目标接收设备包括但不限于相机、智能机器人或任何自动化设备等。

可选的,在本实施例中,一个所述接收设备对应有至少一个数据队列,且一个所述数据队列对应有唯一的所述接收设备。示例性的,数据队列A、数据队列B和数据队列C分别唯一对应接收设备A,相应的接收设备A从数据队列A、数据队列B和数据队列C中取出所需数据;数据队列D、数据队列E和数据队列F分别唯一对应接收设备B,相应的接收设备B从数据队列D、数据队列E和数据队列F中取出所需数据,即数据队列A、数据队列B和数据队列C中写入的数据用于为接收设备A提供执行不同业务所需的数据,而数据队列D、数据队列E和数据队列F中写入的数据用于为接收设备B提供执行不同业务所需的数据。

通过一个接收设备对应有至少一个数据队列,使得多个数据队列可为一个接收设备同时传输数据,增加了数据传输的速度,且避免了只设置唯一的数据队列,当数据队列报错时,无法正常进行数据传输的问题;通过一个数据队列对应有唯一的接收设备,保证了数据队列中的写入的数据可有序的发送至接收设备。

本发明实施例提供的技术方案,通过获取目标数据的标识信息,并根据标识信息从已有的数据队列中选择目标数据队列,最终将目标数据写入目标数队列并发送给目标接收设备,其中,一个所述数据队列对应有至少一个接收设备,且一个所述接收设备对应有唯一的所述数据队列,从而实现了多队列同时传输数据,加快了传输数据的速度,且能够保证数据能有序传输的技术效果。

在上述实施例的基础上,步骤102之前,还包括:

确定所述目标数据的索引信息;向校验中心发送所述索引信息,用于所述校验中心根据所述索引信息对所述目标数据进行超时查询。

具体的,根据目标数据建立目标数据的索引信息,其中,索引信息可用于快速的访问目标数据的数据源以及目标数据。将建立的索引信息发送给校验中心进行存储,其中发送的方式包括通过WiFi发送、5G网络发送或者内部局域网发送等等,校验中心对于索引信息的存储方式通过包括Redis来实现。校验中心为一种存储式服务器,优选的,为了防止校验中心出现宕机使得存储的索引信息丢失,校验中心可采用分布式存储的方式,相应的,确定目标数据的索引信息后,将索引信息按照双副本的方式发送至分布式存储的校验中心中。

校验中心根据索引信息对目标数据进行超时查询,是通过如下方式来实现的:接收设备在接收到目标数据后,会利用目标数据来执行相应的业务操作,例如相机拍照、相机对焦或者相机上下线等等。执行完业务操作后,接收设备会生成包含有目标数据信息的确认数据,并将该确认数据发送至校验中心。校验中心会根据确认数据中携带的目标数据信息,相应的删除或者标记目标数据的索引信息,以完成对目标数据的接收确认操作。校验中心定时的扫描存储的索引信息,若确定还有索引信息对应的数据未被接收,则根据未被接收数据的索引信息确定数据源,以向该数据源发送重发指令,供数据源根据该重发指令进行数据重发。

通过确定目标数据的索引信息并向校验中心发送所述索引信息,使得校验中心可根据索引信息进行定时的超时校验,保证接收设备能够接收到所需的目标数据。

实施例二

图2为本发明实施例二提供的一种数据发送方法的流程图。本实施例为上述实施例一提供了一种具体实现方式,如图2所示,该方法可以包括:

步骤201、获取目标数据的标识信息,并对所述标识信息进行哈希计算,以确定哈希计算结果。

其中,哈希计算是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值,哈希计算是一种压缩映射计算。常见的哈希计算函数包括直接寻址法、数字分析法和平方取中法等等。

具体的,对获取的标识信息按照预设的哈希计算函数进行哈希计算,确定哈希结算结果,其中哈希计算结果为一个固定长度的数值。

步骤202、根据所述哈希计算结果,以及已有候选数据队列的总数,确定目标数据队列。

具体的,将哈希计算结果与已有候选数据队列的总数进行除法计算,将除法计算得到的余数作为目标数据队列的序号,例如哈希计算结果为4,已有候选数据队列的总数为3,则目标数据队列的序号为1;又例如哈希计算结果为10,已有候选数据队列的总数为7,则目标数据队列的序号为3。该过程可通过如下公式表示:

n=Mod(HASH(c),x)

其中,n表示目标数据队列的序号,Mod表示求余函数,HASH表示哈希函数,c表示标识信息,x表示已有候选数据队列的总数。

根据目标数据队列的序号,从已有候选数据队列中确定目标数据队列。

步骤203、将所述目标数据写入所述目标数据队列中,用于通过所述目标数据队列将所述目标数据发送给目标接收设备。

可选的,所述目标数据包括需连续写入的第一目标数据和第二目标数据,所述第一目标数据和所述第二目标数据的标识信息相同,且数据源不同。

例如,目标数据A与目标数据B在业务端的预设数据写入规则中,是需要连续写入的,其中,预设数据写入规则是由技术人员设定并存储于业务端中。并且目标数据A与目标数据B具有相同的标识信息,即目标数据A与目标数据B属于同一业务,如目标数据A为“控制相机A上线”,目标数据B为“控制相机A下线”。通常情况下,目标数据A与目标数据B都存储于同一数据源,如数据源A,但是在实际业务过程中,数据源A会出现“挂掉”的问题,若当从数据源A中获取目标数据A以写入目标数据队列后,数据源A“挂掉”,则需从备选数据源如数据源B中获取目标数据B,以写入目标数据队列中,实现保活的效果。

相应的,步骤203中“将所述目标数据写入所述目标数据队列中”包括:

将所述第一目标数据和所述第二目标数据中,需在后写入的目标数据延迟写入所述目标数据队列。

示例性的,第一目标数据为“控制相机A上线”对应的目标数据,第二目标数据为“控制相机A下线”对应的目标数据,第一目标数据与第二目标数据的目标数据队列都为数据队列A,且第一目标数据来自数据源A,第二目标数据来自数据源B。业务端的预设数据写入规则中是先执行“相机A上线操作”后再执行“相机A下线操作”,则先将“控制相机A上线”对应的目标数据从数据源A中取出,并执行写入数据队列A的操作,在延迟预设时间后再将“相机A下线操作”对应的目标数据从数据源B中取出,并执行写入数据队列A的操作。优选的,延迟时间包括但不限于预设的数据发送超时时间。

通过当第一目标数据和第二目标数据具有相同标识信息,且存储于不同的数据源时,将第一目标数据和第二目标数据中,需在后接收的目标数据延迟写入所述目标数据队列,避免了由于需连续写入的目标数据属于不同数据源,当产生网络的波动,不同数据源写入目标数据队列速度不同,可能导致第一目标数据和第二目标数据写入顺序产生错误的问题。例如“控制相机A上线”对应的目标数据存储于数据源A,“控制相机A下线”对应的目标数据存储于数据源B,当执行将“控制相机A上线”对应的目标数据写入目标数据队列的操作时,若数据源A关联的网络出现波动,导致“控制相机A上线”对应的目标数据还未写入目标数据队列,而“控制相机A下线”对应的目标数据已写入目标数据队列,导致写入顺序出错。

本发明实施例提供的技术方案,通过对标识信息进行哈希计算,以确定哈希计算结果,并根据哈希计算结果,以及已有候选数据队列的总数,确定目标数据队列,或者,根据预设的标识信息与候选数据队列的对应关系,确定所述标识信息在候选数据队列中对应的目标数据队列,使得标识信息相同的目标数据是写入同一个数据队列中,保证了后续数据的发送的有序性;通过将第一目标数据和第二目标数据中,需在后接收的目标数据延迟写入所述目标数据队列,避免了连续的目标数据写入目标数据队列时,由于网络的波动,可能导致连续目标数据的写入顺序产生错误的问题,保证了后续数据的发送的有序性。

实施例三

图3为本发明实施例三提供的一种数据发送装置的结构示意图,可执行本发明任一实施例所提供的一种数据发送方法,具备执行方法相应的功能模块和有益效果。如图3所示,该装置可以包括:

数据队列选择模块31,用于获取目标数据的标识信息,并根据所述标识信息,从已有候选数据队列中选择目标数据队列;

数据发送模块32,用于将所述目标数据写入所述目标数据队列中,用于通过所述目标数据队列将所述目标数据发送给目标接收设备。

在上述实施例的基础上,所述装置还包括索引信息发送模块,具体用于:

确定所述目标数据的索引信息;

向校验中心发送所述索引信息,用于所述校验中心根据所述索引信息对所述目标数据进行超时查询。

在上述实施例的基础上,一个所述接收设备对应有至少一个数据队列,且一个所述数据队列对应有唯一的所述接收设备。

在上述实施例的基础上,所述数据队列选择模块31,具体用于:

对所述标识信息进行哈希计算,以确定哈希计算结果;

根据所述哈希计算结果,以及已有候选数据队列的总数,确定目标数据队列;

或者,根据预设的标识信息与候选数据队列的对应关系,确定所述标识信息在候选数据队列中对应的目标数据队列。

在上述实施例的基础上,所述目标数据包括需连续写入的第一目标数据和第二目标数据,所述第一目标数据和所述第二目标数据的标识信息相同,且数据源不同;

相应的,所述数据发送模块32,具体用于:

将所述第一目标数据和所述第二目标数据中,需在后写入的目标数据延迟写入所述目标数据队列。

本发明实施例所提供的一种数据发送装置,可执行本发明任一实施例所提供的一种数据发送方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任一实施例提供的一种数据发送方法。

实施例四

图4为本发明实施例四提供的一种设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性设备400的框图。图4显示的设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,设备400以通用计算设备的形式表现。设备400的组件可以包括但不限于:一个或者多个处理器或者处理单元401,系统存储器402,连接不同系统组件(包括系统存储器402和处理单元401)的总线403。

总线403表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

设备400典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备400访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器402可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)404和/或高速缓存存储器405。设备400可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统406可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线403相连。存储器402可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块407的程序/实用工具408,可以存储在例如存储器402中,这样的程序模块407包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块407通常执行本发明所描述的实施例中的功能和/或方法。

设备400也可以与一个或多个外部设备409(例如键盘、指向设备、显示器410等)通信,还可与一个或者多个使得用户能与该设备400交互的设备通信,和/或与使得该设备400能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口411进行。并且,设备400还可以通过网络适配器412与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器412通过总线403与设备400的其它模块通信。应当明白,尽管图中未示出,可以结合设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理单元401通过运行存储在系统存储器402中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据发送方法,包括:

获取目标数据的标识信息,并根据所述标识信息,从已有候选数据队列中选择目标数据队列;

将所述目标数据写入所述目标数据队列中,用于通过所述目标数据队列将所述目标数据发送给目标接收设备。

实施例五

本发明实施例五还提供了一种计算机可读存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据发送方法,该方法包括:

获取目标数据的标识信息,并根据所述标识信息,从已有候选数据队列中选择目标数据队列;

将所述目标数据写入所述目标数据队列中,用于通过所述目标数据队列将所述目标数据发送给目标接收设备。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的一种图像编码方法中的相关操作。本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 数据记录介质、数据记录方法、数据处理设备、数据发送方法和数据发送设备、数据传输方法和数据传输设备,以及数据发送系统和数据通信系统
  • 数据发送装置及其控制方法、数据接收装置及其控制方法、数据发送系统、数据发送装置控制程序、数据接收装置控制程序以及记录有该程序的记录介质
技术分类

06120113084279