CN117527714A - 数据报文的读取方法、装置、设备及存储介质 - Google Patents
数据报文的读取方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117527714A CN117527714A CN202410010685.1A CN202410010685A CN117527714A CN 117527714 A CN117527714 A CN 117527714A CN 202410010685 A CN202410010685 A CN 202410010685A CN 117527714 A CN117527714 A CN 117527714A
- Authority
- CN
- China
- Prior art keywords
- data message
- reading
- data
- placement position
- messages
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012163 sequencing technique Methods 0.000 claims abstract description 31
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000004321 preservation Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据报文的读取方法、装置、设备及存储介质。所述方法通过预先设置当前排序队列和已排序队列,在读取数据报文时先读取已排序队列中的数据报文,并在已排序队列中的数据报文不满足读取需求时,在读取当前排序队列中的数据报文,并且在读取当前排队序列报文中会检测当前排队序列中已经完成排序的数据报文,这样在读取已排序队列的数据报文的同时通过当前排队序列同步进行数据报文排序,以及在读取当前排序队列中前部分存储的数据报文的同时通过后部分进行数据报文排序,使得数据报文读取和数据报文可以同步进行,不但可读取到保序的数据报文,又可以提高数据报文的读取效率,进而可以提高读取操作的响应效率。
Description
技术领域
本申请涉及通信技术技术领域,特别涉及一种数据报文的读取方法、装置、设备及存储介质。
背景技术
UDP(UserDatagramProtocol,用户数据报协议)技术因其实时性和可靠性已被广泛采用。相比于TCP(TransmissionControlProtocol,传输控制协议),UDP协议省去了建立连接和拆除连接的过程,取消了重发检验机制,极大地提高了数据通信的实时性,同时UDP组播可以将数据从数据采集端同时发送到多台分布式服务器进行主/备分布式运算,多节点的主/备分布式处理既提升了数据处理能力也避免了单节点故障影响整个***的正常运行,极大地提高了整个***数据处理的容量和可靠性。
在通过UDP协议进行数据传输时,会存在数据报文乱序以及丢包情况。为了避免数据报文乱序的影响,普遍是先对数据报文进行重新排序,然后读取排序后的数据报文。但是,目前普遍是先进行数据报文排序再响应读取操作,这就导致数据报文的读取操作需要等待数据报文排序完成,影响了数据报文读取操作的响应效率。
因而现有技术还有待改进和提高。
发明内容
本申请要解决的技术问题在于,针对现有技术的不足,提供一种数据报文的读取方法、装置、设备及存储介质。
为了解决上述技术问题,本申请第一方面提供了一种数据报文的读取方法,其中,所述的数据报文的读取方法包括:
响应数据报文的读取指令,从预设的已排序队列中读取数据报文,其中,所述已排序队列用于存储已进行排序的数据报文;
当读取到的数据报文未满足读取指令对应的读取需求时,检查预设的当前排序队列的第一个放置位置是否放置数据报文,其中,所述当前排序队列用于对接收到的报文数据进行排序;
当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列;
当未放置数据报文时,读取所述第一个放置位置的空置时长;
当所述空置时长未达到预设时长时,控制读取指令对应的读取操作进入等待状态,直至接收到第一个放置位置对应的数据报文或者空置时长达到预设时长;
当所述空置时长达到预设时长时,将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文。
所述的数据报文的读取方法,其中,所述已排序队列和所述当前排序队列中均存储数据报文的报文指针。
所述的数据报文的读取方法,其中,所述当前排序队列对应报文序号段,并且所述报文序号段随当前排序队列的数据报文被读出而滑动。
所述的数据报文的读取方法,其中,所述读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列之后,所述方法还包括:
在当前排序队列中选取与连续数据报文序列中位于最后的数据报文所处的放置位置相邻的目标放置位置;
将所述目标放置位置作为所述当前排序队列的第一位放置位置,并在读取到的数据报文未满足读取指令对应的读取需求时,重新执行检查预设的当前排序队列的第一位放置位置是否放置数据报文。
所述的数据报文的读取方法,其中,所述读取所述第一个放置位置的空置时长具体包括:
读取所述当前排序队列所包含的数据报文的报文数量,并将所述报文数量作为第一个放置位置对应的空置时长。
所述的数据报文的读取方法,其中,所述当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列具体包括:
当放置数据报文时,选取以所述第一个放置位置的数据报文为起始报文的连续数据报文序列,并获取所述连续数据报文序列的报文数量;
当所述报文数量和已读取数据报文未满足读取需求时,读取所述连续数据报文序列;
当所述报文数量和已读取数据报文满足读取需求时,根据所述读取需求和所述已读取数据报文确定待读取报文数量,按照从前向后顺序从所述连续数据报文序列中读取待待读取报文数量个数据报文,将连续数据报文序列中未被读取的数据报文放置于已排序队列。
所述的数据报文的读取方法,其中,所述方法还包括:
当已排序队列中读取到的数据报文满足读取需求时,根据所述读取需求对应的需求报文数量,按照从前向后顺序从所述已排队序列中读取需求报文数量个数据报文。
本申请第二方面提供了一种数据报文的读取装置,其中,所述的数据报文的读取装置包括:
响应模块,用于响应数据报文的读取指令,从预设的已排序队列中读取数据报文,其中,所述已排序队列用于存储已进行排序的数据报文;
检查模块,用于当读取到的数据报文未满足读取指令对应的读取需求时,检查预设的当前排序队列的第一个放置位置是否放置数据报文,其中,所述当前排序队列用于对接收到的报文数据进行排序;
获取模块,用于当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列;
读取模块,用于当未放置数据报文时,读取所述第一个放置位置的空置时长;
等待模块,用于当所述空置时长未达到预设时长时,控制读取指令对应的读取操作进入等待状态,直至接收到第一个放置位置对应的数据报文或者空置时长达到预设时长;
控制模块,用于当所述空置时长达到预设时长时,将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文。
本申请第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的数据报文的读取方法中的步骤。
本申请第四方面提供了一种终端设备,其包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如上任一所述的数据报文的读取方法中的步骤。
有益效果:与现有技术相比,本申请提供了一种数据报文的读取方法、装置、设备及存储介质,方法包括响应数据报文的读取指令,从预设的已排序队列中读取数据报文,当读取到的数据报文未满足读取指令对应的读取需求时,检查预设的当前排序队列的第一个放置位置是否放置数据报文;当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列;当未放置数据报文时,读取所述第一个放置位置的空置时长;当所述空置时长未达到预设时长时,控制读取指令对应的读取操作进入等待状态,直至接收到第一个放置位置对应的数据报文或者空置时长达到预设时长;当所述空置时长达到预设时长时,将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文。本申请实施例通过预先设置当前排序队列和已排序队列,在读取数据报文时先读取已排序队列中的数据报文,并在已排序队列中的数据报文不满足读取需求时,在读取当前排序队列中的数据报文,并且在读取当前排队序列报文中会检测当前排队序列中已经完成排序的数据报文,这样在读取已排序队列的数据报文的同时通过当前排队序列同步进行数据报文排序,以及在读取当前排序队列中前部分存储的数据报文的同时通过后部分进行数据报文排序,使得数据报文读取和数据报文可以同步进行,不但可读取到保序的数据报文,又可以提高数据报文的读取效率,进而可以提高读取操作的响应效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据报文的读取方法的流程图。
图2为本申请实施例提供的数据报文的读取方法中步骤S30的流程图。
图3为本申请实施例提供的数据报文的读取方法中第一位放置位置的移动过程的流程示意图。
图4为本申请实施例提供的数据报文的读取装置的结构原理图。
图5为本申请实施例提供的终端设备的结构原理图。
具体实施方式
本申请实施例提供一种数据报文的读取方法、装置、设备及存储介质,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
应理解,本实施例中各步骤的序号和大小并不意味着执行顺序的先后,各过程的执行顺序以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
经过研究发现,UDP(UserDatagramProtocol,用户数据报协议)技术因其实时性和可靠性已被广泛采用。相比于TCP(TransmissionControlProtocol,传输控制协议),UDP协议省去了建立连接和拆除连接的过程,取消了重发检验机制,极大地提高了数据通信的实时性,同时UDP组播可以将数据从数据采集端同时发送到多台分布式服务器进行主/备分布式运算,多节点的主/备分布式处理既提升了数据处理能力也避免了单节点故障影响整个***的正常运行,极大地提高了整个***数据处理的容量和可靠性。
在通过UDP协议进行数据传输时,会存在数据报文乱序以及丢包情况。为了避免数据报文乱序的影响,普遍是先对数据报文进行重新排序,然后读取排序后的数据报文。但是,目前普遍是先进行数据报文排序再响应读取操作,这就导致数据报文的读取操作需要等待数据报文排序完成,影响了数据报文读取操作的响应效率。
为了解决上述问题,在本申请实施例中,响应数据报文的读取指令,从预设的已排序队列中读取数据报文,当读取到的数据报文未满足读取指令对应的读取需求时,检查预设的当前排序队列的第一个放置位置是否放置数据报文;当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列;当未放置数据报文时,读取所述第一个放置位置的空置时长;当所述空置时长未达到预设时长时,控制读取指令对应的读取操作进入等待状态,直至接收到第一个放置位置对应的数据报文或者空置时长达到预设时长;当所述空置时长达到预设时长时,将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文。本申请实施例通过预先设置当前排序队列和已排序队列,在读取数据报文时先读取已排序队列中的数据报文,并在已排序队列中的数据报文不满足读取需求时,在读取当前排序队列中的数据报文,并且在读取当前排队序列报文中会检测当前排队序列中已经完成排序的数据报文,这样在读取已排序队列的数据报文的同时通过当前排队序列同步进行数据报文排序,以及在读取当前排序队列中前部分存储的数据报文的同时通过后部分进行数据报文排序,使得数据报文读取和数据报文可以同步进行,不但可读取到保序的数据报文,又可以提高数据报文的读取效率,进而可以提高读取操作的响应效率。
下面结合附图,通过对实施例的描述,对申请内容作进一步说明。
本实施例提供了一种数据报文的读取方法,如图1所示,所述方法包括:
S10、响应数据报文的读取指令,从预设的已排序队列中读取数据报文。
具体地,读取指令可以基于用户通过客户端执行的读取操作所形成的,用于读取接收到的数据报文,以反馈给客户端,其中,客户端需要获取的数据报文为保序数据报文。基于此,在响应数据报文的读取指令后,会从已排序队列中读取数据报文,而不是直接从当前排序队列读取数据报文或者直接读取接收到的数据报文,这样一方面可以保证读取到的数据报文的报文顺序,另一方面可以提高数据报文的读取效率。
已排序队列为预先建立的,用于存储已进行排序的数据报文。其中,已进行排序的数据报文为通过当前排队序列通过滑窗方式进行排序得到的。在本申请实施例中,已排序队列和当前排序队列中存储的数据报文的报文指针。也就是说,在接收到数据报文后,无需将数据报文存储于当前排序队列,然后再从当前排序队列移动至已排序队列,仅需要将数据报文的报文指针存储于当前排序队列,再从当前排序队列移动至已排序队列,这样在对数据报文进行排序时,仅需要读取数据报文的报文头,无需读取数据报文的全部数据内容,不但减少了当前排序队列和已排序队列所占用的存储空间,还提高数了据报文存入当前排序队列和从第一排队序列转入已排序队列所花费的时间,进而提高了数据报文的排序效率。
S20、当读取到的数据报文未满足读取指令对应的读取需求时,检查预设的当前排序队列的第一个放置位置是否放置数据报文。
具体地,所述当前排序队列用于对接收到的报文数据进行排序,其中,当前排序队列包括多个放置位置,并且当前排序队列对应有一个报文序号段,多个放置位置的位置数量与报文序号段所包括的报文序号数量相同,多个放置位置与报文序号段所包括的报文序号一一对应,并且随着放置位置的位置编号增大,放置位置对应的报文序列也增大。例如,位置编码1的放置位置对应的报文序号大于位置编码2的放置位置对应的报文序号。
进一步,读取需求用于反映读取指令所需的数据报文数量,其中,读取需求可以为数据报文数量,读取到的数据报文未满足读取需求指的是读取到的数据报文的报文数量未满足读取需求。当然,在实际应用中,读取需求还可以为目标报文序号,即需要读取到目标报文序号前的所有数据报文,相应的,读取到的数据报文未满足读取指令对应的读取需求指的是读取到的数据报文中的最大报文序号没有达到目标报文序号。
此外,需要说明的是,当已排序队列中读取到的数据报文满足读取需求时,可以直接从已排序队列中需求数据报文,这样可以提高数据报文的读取效率。当然,在已排序队列中读取到的数据报文满足读取需求时,已排序队列中的数据报文可能比读取需求对应的需求报文数量多。由此,可以根据所述读取需求对应的需求报文数量,按照从前向后顺序从所述已排序队列中读取需求报文数量个数据报文,并且可以将已排序对应的队列起始位置移动至未被读取的数据报文中的首位数据报文处。
S30、当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列。
具体地,放置数据报文说明当前排队序列中存在与读取到的数据报文中最后一位数据报文连续的数据报文,此时,从当前排序队列中读取以第一个放置位置的数据报文为起始数据报文的连续数据报文序列。
在一些实现方式中,如图2所示,所述当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列具体包括:
S31、当放置数据报文时,选取以所述第一个放置位置的数据报文为起始报文的连续数据报文序列,并获取所述连续数据报文序列的报文数量;
S32、当所述报文数量和已读取数据报文未满足读取需求时,读取所述连续数据报文序列;
S33、当所述报文数量和已读取数据报文满足读取需求时,根据所述读取需求和所述已读取数据报文确定待读取报文数量,按照从前向后顺序从所述连续数据报文序列中读取待待读取报文数量个数据报文,将连续数据报文序列中未被读取的数据报文放置于已排序队列。
具体地,报文数量可以为连续数据报文序列所包括的数据报文的数量,在获取到报文数量后,直接将该连续数据报文序列和已排序序列中读取到的数据报文合并作为读取到的数据报文来;也可以先检测读取到数据报文和连续数据报文序列是否满足读取需求,当满足读取需求时,在确定需要确定连续数据报文序列中的所有数据报文,还是连续数据报文中的部分数据报文。在需要读取部分数据报文时,确定待读取报文数量,并按照从前向后顺序从所述连续数据报文序列中读取待待读取报文数量个数据报文,然后将连续数据报文序列中未被读取的数据报文放置于已排序队列。
在一些实现方式中,当前排队序列会为其对应的报文序号段中的每个报文序号预留放置位置,其他数据报文不会占用报文序号对应的预留放置位置,对于每个放置位置可能会出现该放置位置前存在数据报文,该放置位置后存在数据报文,而该放置位置处于空闲状态。因此,在以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列时,可以检测读取过程中遇到的空闲放置位置的位置状态,如果该位置状态为数据报文丢包状态,那么将该空闲放置位置作为与其前一个放置位置的数据报文连续,并继续读取该空闲放置位置的后一放置位置是否存储数据报文或者是否为数据报文丢包状态的放置位置,当存放数据报文时,将数据报文放入连续数据报文序列中,当为数据报文丢包状态的空闲放置位置时,继续执行读取该空闲放置位置的后一放置位置是否存储数据报文或者是否为数据报文丢包状态的放置位置的步骤,直至得到的位置状态不为数据报文丢包状态的空闲放置位置为止。
本申请实施例通过为数据报文预留放置位置,可以使得晚到的数据报文可以为获取到排序位置,同时又为空闲放置位置设置位置状态以来确定空闲放置位置对应的数据报文是否为丢包数据报文,这样可以避免因数据报文丢包而导致的无法进行后续数据报文排序的问题。
在一些实现方式中,如图3所示,所述读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列之后,所述方法还包括:
S310、在当前排序队列中选取与连续数据报文序列中位于最后的数据报文所处的放置位置相邻的目标放置位置;
S320、将所述目标放置位置作为所述当前排序队列的第一位放置位置,并在读取到的数据报文未满足读取指令对应的读取需求时,重新执行检查预设的当前排序队列的第一位放置位置是否放置数据报文。
具体地,在选取到连续数据报文序列后,会滑动当前排序队列对应的报文序号段,使得滑动后的报文序号段的起始报文序号为连续数据报文序列中位于最后的数据报文加1,其中,当连续数据报文序列包含位置状态为数据报文丢包状态的空闲放置位置时,连续数据报文序列中位于最后的数据报文为与数据报文丢包状态的空闲放置位置,那么报文序号为位置状态为数据报文丢包状态的空闲放置位置对应的报文序号。基于此,在读取到连续数据报文序列后,可以选取连续数据报文序列中位于最后的数据报文所处的放置位置,并将读取到的放置位置的后一放置位置作为目标放置位置,其中,放置位置可以为数据报文所处的放置位置,也可以时位置状态为数据报文丢包状态的空闲放置位置。
S40、当未放置数据报文时,读取所述第一个放置位置的空置时长。
具体地,未放置数据报文说明第一个放置位置处于空闲状态,也就是说,第一个放置位置的数据报文还未接收到。此外,第一个放置位置之后的放置位置可以存在数据报文。因此,会读取第一个放置位置的空置时长,以通过空置时长来判断第一个放置位置对应的数据报文是否丢包。
在一些实现方式中,所述读取所述第一个放置位置的空置时长具体包括:
读取所述当前排序队列所包含的数据报文的报文数量,并将所述报文数量作为第一个放置位置对应的空置时长。
具体地,第一个放置位置被判定为进入空闲状态的触发条件为第一个放置位置后的放置位置被放入数据报文,也就是说,报文序号比第一个放置位置对应的报文序号大的数据报文被接收到,而第一个放置位置对应的数据报文未接收到,那么说明第一个放置位置对应的数据报文处于晚到状态,相应的,触发第一个放置位置进入空闲状态,并将第一个放置位置的空闲时长设置为1,然后在第一个放置位置进入空闲状态后,每接收到一个数据报文,第一个放置位置的空闲时长增加1。此外,第一个放置位置之前没有放置位置,从而在在第一个放置位置进入空闲状态后接收到的数据报文均存储于第一放置位置之后,从而可以将当前排序对应所包含的数据报文的报文数据作为第一个放置位置的空置时长。
此外,值得说明的是,对于当前排序队列中除第一个放置位置外的各放置位置,放置位置的空闲时长可以根据在放置位置进入空闲状态后接收到的数据报文的报文数量来确定。也就是说,对于每个放置位置可以记录放置位置进入空闲状态的时刻,以及各数据报文存入当前排序序列的存入时刻,然后根据进入空闲状态的时刻和各数据报文的存入时刻来确定放置位置对应的空闲时长。
S50、当所述空置时长未达到预设时长时,控制读取指令对应的读取操作进入等待状态,直至接收到第一个放置位置对应的数据报文或者空置时长达到预设时长。
具体地,当空置时长未达到预设时长时,说明第一个放置位置对应的数据报文为晚到数据报文,此时需要继续等待第一个放置位置对应的数据报文,直至接收到第一个放置位置对应的数据报文或者是所述空置时长达到预设时长,因此可以控制读取指令对应的读取操作进入等待状态。此外,在等待过程中,若接收到第一个放置位置对应的数据报文,则执行以读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列的步骤,若空置时长未达到预设时长,则执行将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文的步骤。
S60、当所述空置时长达到预设时长时,将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文。
具体地,空置时长达到预设时长,说明第一个放置位置对应的数据报文处于丢包状态,此时可以将将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文,依次类推,实现读取和排序的并行进行。此外,在实际应用中,当将当前当前排序队列中的放置位置判定为数据报文丢包后,再接收到该放置位置对应的数据报文时,可以检查该数据报文对应的放置位置是否包含于当前排序队列内,如果包含可以将数据报文存入其对应的放置位置,当不包含时,可以丢弃该数据报文。这样在不影响数据报文读取效率的情况下,可以最大程度的对数据报文进行排序,减少因晚到而判定为丢包的数据报文的数量。当然,在实际应用中,也可以是再将放置位置对应的数据报文判定为丢包后,再接收到该放置位置对应的数据报文时,直接丢给该数据报文。在本申请实施例的一个实现方式中,
综上所述,本实施例提供了一种数据报文的读取方法,方法包括响应数据报文的读取指令,从预设的已排序队列中读取数据报文,当读取到的数据报文未满足读取指令对应的读取需求时,检查预设的当前排序队列的第一个放置位置是否放置数据报文;当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列;当未放置数据报文时,读取所述第一个放置位置的空置时长;当所述空置时长未达到预设时长时,控制读取指令对应的读取操作进入等待状态,直至接收到第一个放置位置对应的数据报文或者空置时长达到预设时长;当所述空置时长达到预设时长时,将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文。本申请实施例通过预先设置当前排序队列和已排序队列,在读取数据报文时先读取已排序队列中的数据报文,并在已排序队列中的数据报文不满足读取需求时,在读取当前排序队列中的数据报文,并且在读取当前排队序列报文中会检测当前排队序列中已经完成排序的数据报文,这样在读取已排序队列的数据报文的同时通过当前排队序列同步进行数据报文排序,以及在读取当前排序队列中前部分存储的数据报文的同时通过后部分进行数据报文排序,使得数据报文读取和数据报文可以同步进行,不但可读取到保序的数据报文,又可以提高数据报文的读取效率,进而可以提高读取操作的响应效率。
基于上述数据报文的读取方法,本实施例提供了一种数据报文的读取装置,如图4所示,所述的数据报文的读取装置包括:
响应模块100,用于响应数据报文的读取指令,从预设的已排序队列中读取数据报文,其中,所述已排序队列用于存储已进行排序的数据报文;
检查模块200,用于当读取到的数据报文未满足读取指令对应的读取需求时,检查预设的当前排序队列的第一个放置位置是否放置数据报文,其中,所述当前排序队列用于对接收到的报文数据进行排序;
获取模块300,用于当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列;
读取模块400,用于当未放置数据报文时,读取所述第一个放置位置的空置时长;
等待模块500,用于当所述空置时长未达到预设时长时,控制读取指令对应的读取操作进入等待状态,直至接收到第一个放置位置对应的数据报文或者空置时长达到预设时长;
控制模块600,用于当所述空置时长达到预设时长时,将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文。
基于上述数据报文的读取方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的数据报文的读取方法中的步骤。
基于上述数据报文的读取方法,本申请还提供了一种终端设备,如图5所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据报文的读取方法,其特征在于,所述的数据报文的读取方法包括:
响应数据报文的读取指令,从预设的已排序队列中读取数据报文,其中,所述已排序队列用于存储已进行排序的数据报文;
当读取到的数据报文未满足读取指令对应的读取需求时,检查预设的当前排序队列的第一个放置位置是否放置数据报文,其中,所述当前排序队列用于对接收到的报文数据进行排序;
当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列;
当未放置数据报文时,读取所述第一个放置位置的空置时长;
当所述空置时长未达到预设时长时,控制读取指令对应的读取操作进入等待状态,直至接收到第一个放置位置对应的数据报文或者空置时长达到预设时长;
当所述空置时长达到预设时长时,将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文。
2.根据权利要求1所述的数据报文的读取方法,其特征在于,所述已排序队列和所述当前排序队列中均存储数据报文的报文指针。
3.根据权利要求1所述的数据报文的读取方法,其特征在于,所述当前排序队列对应报文序号段,并且所述报文序号段随当前排序队列的数据报文被读出而滑动。
4.根据权利要求1所述的数据报文的读取方法,其特征在于,所述读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列之后,所述方法还包括:
在当前排序队列中选取与连续数据报文序列中位于最后的数据报文所处的放置位置相邻的目标放置位置;
将所述目标放置位置作为所述当前排序队列的第一位放置位置,并在读取到的数据报文未满足读取指令对应的读取需求时,重新执行检查预设的当前排序队列的第一位放置位置是否放置数据报文。
5.根据权利要求1所述的数据报文的读取方法,其特征在于,所述读取所述第一个放置位置的空置时长具体包括:
读取所述当前排序队列所包含的数据报文的报文数量,并将所述报文数量作为第一个放置位置对应的空置时长。
6.根据权利要求1所述的数据报文的读取方法,其特征在于,所述当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列具体包括:
当放置数据报文时,选取以所述第一个放置位置的数据报文为起始报文的连续数据报文序列,并获取所述连续数据报文序列的报文数量;
当所述报文数量和已读取数据报文未满足读取需求时,读取所述连续数据报文序列;
当所述报文数量和已读取数据报文满足读取需求时,根据所述读取需求和所述已读取数据报文确定待读取报文数量,按照从前向后顺序从所述连续数据报文序列中读取待待读取报文数量个数据报文,将连续数据报文序列中未被读取的数据报文放置于已排序队列。
7.根据权利要求1所述的数据报文的读取方法,其特征在于,所述方法还包括:
当已排序队列中读取到的数据报文满足读取需求时,根据所述读取需求对应的需求报文数量,按照从前向后顺序从所述已排序队列中读取需求报文数量个数据报文。
8.一种数据报文的读取装置,其特征在于,所述的数据报文的读取装置包括:
响应模块,用于响应数据报文的读取指令,从预设的已排序队列中读取数据报文,其中,所述已排序队列用于存储已进行排序的数据报文;
检查模块,用于当读取到的数据报文未满足读取指令对应的读取需求时,检查预设的当前排序队列的第一个放置位置是否放置数据报文,其中,所述当前排序队列用于对接收到的报文数据进行排序;
获取模块,用于当放置数据报文时,读取以所述第一个放置位置的数据报文为起始数据报文的连续数据报文序列;
读取模块,用于当未放置数据报文时,读取所述第一个放置位置的空置时长;
等待模块,用于当所述空置时长未达到预设时长时,控制读取指令对应的读取操作进入等待状态,直至接收到第一个放置位置对应的数据报文或者空置时长达到预设时长;
控制模块,用于当所述空置时长达到预设时长时,将所述第一个放置位置的后一放置位置作为所述第一个放置位置,并重新检查第一个放置位置是否放置数据报文。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任意一项所述的数据报文的读取方法中的步骤。
10.一种终端设备,其特征在于,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如权利要求1-7任意一项所述的数据报文的读取方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010685.1A CN117527714B (zh) | 2024-01-04 | 2024-01-04 | 数据报文的读取方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010685.1A CN117527714B (zh) | 2024-01-04 | 2024-01-04 | 数据报文的读取方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117527714A true CN117527714A (zh) | 2024-02-06 |
CN117527714B CN117527714B (zh) | 2024-03-15 |
Family
ID=89751629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410010685.1A Active CN117527714B (zh) | 2024-01-04 | 2024-01-04 | 数据报文的读取方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117527714B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007383A1 (en) * | 2010-03-11 | 2013-01-03 | Fujitsu Limited | Data block read-out control apparatus |
CN105138678A (zh) * | 2015-09-11 | 2015-12-09 | 武汉云空间地理信息技术有限公司 | 一种地图瓦片数据的读取、分发方法及读取、分发*** |
CN112235234A (zh) * | 2020-07-30 | 2021-01-15 | 视联动力信息技术股份有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN112637162A (zh) * | 2020-12-14 | 2021-04-09 | 上海金仕达软件科技有限公司 | 一种udp数据包处理方法及装置 |
CN113704588A (zh) * | 2021-08-31 | 2021-11-26 | 平安普惠企业管理有限公司 | 基于映射技术的文件读取方法及*** |
-
2024
- 2024-01-04 CN CN202410010685.1A patent/CN117527714B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130007383A1 (en) * | 2010-03-11 | 2013-01-03 | Fujitsu Limited | Data block read-out control apparatus |
CN105138678A (zh) * | 2015-09-11 | 2015-12-09 | 武汉云空间地理信息技术有限公司 | 一种地图瓦片数据的读取、分发方法及读取、分发*** |
CN112235234A (zh) * | 2020-07-30 | 2021-01-15 | 视联动力信息技术股份有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN112637162A (zh) * | 2020-12-14 | 2021-04-09 | 上海金仕达软件科技有限公司 | 一种udp数据包处理方法及装置 |
CN113704588A (zh) * | 2021-08-31 | 2021-11-26 | 平安普惠企业管理有限公司 | 基于映射技术的文件读取方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN117527714B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5920568A (en) | Scheduling apparatus and scheduling method | |
CN110865769B (zh) | 处理读/写请求的方法、网络存储***及电子设备 | |
CN110532205A (zh) | 数据传输方法、装置、计算机设备和计算机可读存储介质 | |
CN112311702B (zh) | Fc交换机调度方法、装置、电子设备及存储介质 | |
CN111490947A (zh) | 数据包发送方法、数据包接收方法、***、设备及介质 | |
CN108304272B (zh) | 一种数据io请求的处理方法及装置 | |
CN117527714B (zh) | 数据报文的读取方法、装置、设备及存储介质 | |
CN112040001A (zh) | 一种基于分布式存储的请求处理方法及装置 | |
CN109818977B (zh) | 一种接入服务器通信优化方法、接入服务器以及通信*** | |
CN113157465B (zh) | 基于指针链表的消息发送方法及装置 | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN110413398B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
US11194619B2 (en) | Information processing system and non-transitory computer readable medium storing program for multitenant service | |
CN116909767A (zh) | 一种通道可扩展的流程消息处理方法 | |
CN109905459A (zh) | 一种数据传输方法及装置 | |
CN108196901A (zh) | 一种浏览器中摄像头的加载方法及装置 | |
JP2011234114A (ja) | フレーム処理装置及びフレーム処理方法 | |
CN110162415B (zh) | 用于处理数据请求的方法、服务器、装置及存储介质 | |
CN115292023A (zh) | 定时任务处理方法及装置 | |
CN112433977B (zh) | 一种基于vb环境下电测***多台串口设备通讯方法 | |
CN117527641B (zh) | 数据报文的丢包观测方法、装置、设备及存储介质 | |
CN110515553B (zh) | 一种卷删除方法及设备 | |
CN116185649A (zh) | 存储控制方法、存储控制器、存储芯片、网卡、可读介质 | |
CN117527937B (zh) | 基于排序窗口的数据报文的排序方法、装置及设备 | |
CN112035407A (zh) | 一种文件传输***及传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |