CN111158871B - 数据包并发请求处理方法、装置、电子设备及存储介质 - Google Patents
数据包并发请求处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111158871B CN111158871B CN201911263655.7A CN201911263655A CN111158871B CN 111158871 B CN111158871 B CN 111158871B CN 201911263655 A CN201911263655 A CN 201911263655A CN 111158871 B CN111158871 B CN 111158871B
- Authority
- CN
- China
- Prior art keywords
- data packet
- data
- queue
- return value
- work order
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 4
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 6
- 239000002184 metal Substances 0.000 description 6
- 238000005507 spraying Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Abstract
本申请提供了一种数据包并发请求处理方法、装置、电子设备及存储介质,涉及数据处理技术领域。该方法包括:获取第一数据包并记录第一数据包的获取时间;将第一数据包加入等待队列;基于数据包返回值更新等待队列;基于第一数据包和/或基于数据包返回值更新后的等待队列中位于队首的队首数据包,进行工单数据显示。在进行工单数据显示时,并发的数据包会导致工单数据界面卡顿,本申请中在处理并发数据包时,按照先进先出的规则进行处理,每次只响应一个数据包请求,能够避免工单数据界面卡顿的问题,以提高工单数据显示的流畅度。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种数据包并发请求处理方法、装置、电子设备及存储介质。
背景技术
现阶段针对复杂界面的显示采用对象轮询的方法,确保所有数据能够有效的显示,但是在一些特殊行业,比如钣喷行业,站点配置的电脑配置往往较低,4GB内存电脑是标准配置,甚至还有2GB内存的电脑。而现在大型钣喷中心的月工单数量超过1500,加上钣喷维修工序多、站内各类工作人员多,因此存在站点的工单数据界面更新缓慢的问题。
发明内容
本申请的实施例在于提供一种数据包并发请求处理方法、装置、电子设备、存储介质,以解决目前方法在处理工单数据显示时出现的界面更新缓慢问题。
本申请的实施例提供了一种数据包并发请求处理方法,包括:每获取到一个数据包时,将所述数据包加入等待队列;基于所述等待队列中的队首数据包请求进行工单数据显示;获取所述队首数据包的数据包返回值,所述数据包返回值用于表征是否完成工单数据显示;基于数据包返回值更新所述等待队列,并重新执行所述基于所述等待队列中的队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤。
在上述实现过程中,通过已完成工单数据显示的数据包的返回值对所述等待队列中的数据包进行先进先出地工单数据显示,能够保证每次有一个数据包的显示请求被响应,避免工单数据界面更新缓慢或卡顿的问题,以提高工单数据显示的流畅度。
可选地,所述基于数据包返回值更新所述等待队列,包括:当所述数据包返回值为第一返回值时,删除所述等待队列中已处理的第二数据包;当所述数据包返回值不是所述第一返回值时,保持所述等待队列不变。
在上述实现过程中,所述数据包返回值为第一返回值时,表明上一个数据包已经成功完成工单数据显示,将已处理的第二数据包删除,便于继续处理位于所述等待队列中其他数据包。当所述数据包返回值表示所述第二数据包并未成功完成工单数据显示,位于队首的数据包不变,避免错漏数据包从而确保工单数据显示的完整性。
可选地,所述获取所述队首数据包的数据包返回值,包括:当在预设时间内完成所述队首数据包的工单数据显示时,获取所述第一返回值。
在上述实现过程中,通过设置所述预设时间,对超过所述预设时间未成功显示的队首数据包进行对应处理,避免一直对无法成功进行工单数据显示的队首数据包进行显示处理,提高了工单数据显示和更新效率。
可选地,所述获取所述队首数据包的数据包返回值,还包括:当在预设时间内未完成所述队首数据包工单数据显示时,判断所述等待队列中数据包的数量;当所述等待队列中数据包的数量为1时,获取所述第一返回值;当所述等待队列中数据包的数量大于1时,判断基于所述队首数据包请求进行工单数据显示的次数,并基于所述队首数据包请求进行工单数据显示的次数,获取所述队首数据包的数据包返回值。
在上述实现过程中,基于等待队列中数据包的数量和请求进行工单数据显示的次数删除队首数据包或对数据包发送请求的顺序进行调整,避免某一数据包长时间不能显示导致其他数据包不能被显示,能够提高工单数据显示的效率。
可选地,所述基于所述队首数据包请求进行工单数据显示的次数,获取所述队首数据包的数据包返回值,包括:当基于所述队首数据包请求进行工单数据显示的次数小于预设次数时,返回第二返回值,并再次执行所述基于所述队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤;其中,每基于所述队首数据包请求进行工单数据显示一次时,将所述队首数据包请求进行工单数据显示的次数加1,所述第二返回值表示不改变所述等待队列。
在上述实现过程中,在所述队首数据包请求次数小于所述预设次数的时候,只要没有返回所述第一返回值,所述队首数据包继续请求直到请求次数等于所述预设次数,在请求次数等于所述预设次数时,对比所述等待队列中的前两位的数据包,是为了互换所述队首数据包和第二位数据包,避免某一数据包长时间不能被显示导致其他数据包不能被显示,能够提高工单数据显示的效率。
可选地,所述基于所述队首数据包请求进行工单数据显示的次数,获取所述队首数据包的数据包返回值,还包括:当基于所述队首数据包请求进行工单数据显示的次数等于所述预设次数时,判断所述队首数据包的第一工单序号和位于所述等待队列中第二位的数据包的第二工单序号是否相同;当所述第一工单序号和所述第二工单序号不同时,将所述队首数据包和所述第二位的数据包顺序互换,并返回所述第二返回值;当所述第一工单序号和所述第二工单序号相同时,删除所述队首的数据包,将所述第二位的数据包作为新的队首数据包。
在上述实现过程中,基于等待队列中前两个数据包的工单序号确定队首数据包,按照先进先出的原则依次进行所述等待队列中的其他数据包,避免队首数据包不能成功显示时其他数据包不能被显示,能够提高工单数据显示的效率。
本申请还提供了一种数据包并发请求处理装置,包括:获取模块,用于在每获取到一个数据包时,将所述数据包加入等待队列;请求模块,用于基于所述等待队列中的队首数据包请求进行工单数据显示;返回模块,用于获取所述队首数据包的数据包返回值,所述数据包返回值用于表征是否完成工单数据显示;更新模块,用于基于数据包返回值更新所述等待队列,并重新执行所述基于所述等待队列中的队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤。
在上述实现过程中,通过已完成工单数据显示的数据包的返回值对所述等待队列中的数据包进行先进先出地工单数据显示,能够保证每次有一个数据包的显示请求被响应,避免工单数据界面更新缓慢或卡顿的问题,以提高工单数据显示的流畅度。
可选地,所述更新模块具体用于:当所述数据包返回值为第一返回值时,删除所述等待队列中已处理的第二数据包;当所述数据包返回值不是所述第一返回值时,保持所述等待队列不变。
在上述实现过程中,所述数据包返回值为第一返回值时,表明上一个数据包已经成功完成工单数据显示,将已处理的第二数据包删除,便于继续处理位于所述等待队列中其他数据包。当所述数据包返回值表示所述第二数据包并未成功完成工单数据显示,位于队首的数据包不变,避免错漏数据包并继续处理位于队首的数据包从而确保工单数据显示的完整性。
可选地,所述返回模块具体用于:当在预设时间内完成所述队首数据包的工单数据显示时,获取所述第一返回值。
在上述实现过程中,通过设置所述预设时间,将在预设时间成功显示的队首数据包删除进行对应处理,便于继续处理等待队列中其他的数据包,提高了工单数据显示和更新效率。
可选地,所述返回模块具体还用于:当在预设时间内未完成所述队首数据包工单数据显示时,判断所述等待队列中数据包的数量;当所述等待队列中数据包的数量为1时,获取所述第一返回值;当所述等待队列中数据包的数量大于1时,判断基于所述队首数据包请求进行工单数据显示的次数,并基于所述队首数据包请求进行工单数据显示的次数,获取所述队首数据包的数据包返回值。
在上述实现过程中,避免某一数据包长时间不能被显示导致其他数据包不能被显示,能够提高工单数据显示的效率。
可选地,所述返回模块具体还用于:当基于所述队首数据包请求进行工单数据显示的次数小于预设次数时,返回第二返回值,并再次执行所述基于所述队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤;其中,每基于所述队首数据包请求进行工单数据显示一次时,将所述队首数据包请求进行工单数据显示的次数加1,所述第二返回值表示不改变所述等待队列。
在上述实现过程中,在所述队首数据包请求次数小于所述预设次数的时候,只要没有返回所述第一返回值,所述队首数据包继续请求直到请求次数等于所述预设次数,在请求次数等于所述预设次数时,对比所述等待队列中的前两位的数据包,是为了互换所述队首数据包和第二位数据包,避免某一数据包长时间不能被显示导致其他数据包不能被显示,能够提高工单数据显示的效率。
可选地,所述返回模块具体还用于:当基于所述队首数据包请求进行工单数据显示的次数等于所述预设次数时,判断所述队首数据包的第一工单序号和位于所述等待队列中第二位的数据包的第二工单序号是否相同;当所述第一工单序号和所述第二工单序号不同时,将所述队首数据包和所述第二位的数据包顺序互换,并返回所述第二返回值;当所述第一工单序号和所述第二工单序号相同时,删除所述队首的数据包,将所述第二位的数据包作为新的队首数据包。
在上述实现过程中,基于等待队列中前两个数据包的工单序号确定队首数据包,按照先进先出的原则依次进行所述等待队列中的其他数据包,避免队首数据包不能成功显示时其他数据包不能被显示,能够提高工单数据显示的效率。
本实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行上述任一项方法中的步骤。
本实施例还提供了一种存储介质,所述存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行上述任一项方法中的步骤。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
图1为本申请实施例提供的一种数据包并发请求处理方法的流程图。
图2为本申请实施例提供的一种数据包返回值获取步骤的流程图。
图3为本申请实施例提供的一种数据包返回值确定步骤的流程图。
图4为本申请的实施例提供的一种数据包并发请求处理装置的框图。
图5为本申请实施例提供的一种数据包并发请求处理方法的全流程图。
图标:60-数据包并发请求处理装置;601-获取模块;602-请求模块;603-返回模块;604-更新模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在本申请的描述中,需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书、以及附图中所特别指出的结构来实现和获得。
本申请的实施例提供了一种数据包并发请求处理方法,请参看图1,图1为本申请实施例提供的一种数据包并发请求处理方法的流程图,所述方法分为以下步骤:
步骤S1:每获取到一个数据包时,将数据包加入等待队列。
其中,数据包由工单生成,记录每个工单的获取时间,每个工单的时间对应一个唯一的工单序号,将工单中数据打包成数据包,则数据包中携带对应的工单序号。
基于先进的数据包排列在前的规则将一个或多个按照该顺序排列的数据包序列作为上述等待队列。
每获取一个数据包将其加入等待队列中,按照先进先出的顺序依次处理,保证数据包显示有序进行,防止出现大量数据包突发请求显示时造成工单数据显示的堵塞也就是界面卡顿,保证工单显示效率,提高工单数据显示界面的流畅度。
步骤S2:基于等待队列中的队首数据包请求进行工单数据显示。
在步骤S1中,等待队列不断有新的数据包加入,新的数据包不断加入等待队列的队尾处。获取等待队列中的队首数据包和获取队队首数据包没有前后顺序关系。按照队列先进先出的处理原则,必然基于等待队列中的队首数据包请求进行工单数据显示。
可选地,本实施例中的数据包并发请求处理方法应用在钣喷行业时,工单数据显示内容包括工单序号、钣喷定损部件、钣喷工序等内容。应当理解的是,上述方法还可以应用于其他适用的领域中。
步骤S3:获取队首数据包的数据包返回值,数据包返回值用于表征是否完成工单数据显示。
在开始处理新的数据包之前,首先要得到正在处理或已处理的数据包的显示结果,不同的显示结果返回不同的返回值。作为一种实施方式,返回值为1时表示已处理的数据包已经成功显示,删除已经成功显示的数据包,更新等待队列。返回值不是1表示正在处理的数据包未成功显示,需要将该数据包保留,重新请求进行显示,等待队列的队首数据包不变。
步骤S4:基于数据包返回值更新等待队列。
基于步骤S3,步骤S4中返回值为1时表示已经在处理的数据包已经成功显示,删除已经成功显示的数据包,更新等待队列,重新获取队首数据包,基于队首数据包进行工单数据显示。返回值不是1表示正在处理或已处理的数据包未成功显示,需要将该数据包保留,未处理的数据包也就是未成功处理的队首数据包将重新请求进行工单数据显示。
可以理解的是,通过已完成工单数据显示的数据包的返回值对等待队列中的数据包进行先进先出地显示,能够保证每次有一个数据包的显示请求被响应,避免工单数据界面卡顿、更新缓慢的问题,以提高工单数据显示的流畅度。
请参看图2,图2为本申请实施例提供的一种数据包返回值获取步骤的流程图。可选地,数据包返回值获取步骤具体可以包括以下子步骤:
步骤S31:判断在预设时间内是否完成队首数据包的工单数据显示;
步骤S32:当在预设时间内完成队首数据包的工单数据显示时,获取第一返回值。
步骤S33:当在预设时间内未完成队首数据包工单数据显示时,判断等待队列中数据包的数量。
步骤S34:当等待队列中数据包的数量为1时,获取第一返回值;
步骤S35:当等待队列中数据包的数量大于1时,判断基于队首数据包请求进行工单数据显示的次数,并基于队首数据包请求进行工单数据显示的次数,获取队首数据包的数据包返回值。
可选地,可以结合实际需要设置预设时间。作为一种实施方式,预设时间可以为800ms。在800ms内队首数据包在进行工单数据显示中成功,等待队列中其他数据包继续进行显示请求。在800ms内,队首数据包未成功返回第一返回值,需要调换等待队列中前两个数据包显示的顺序,避免长时间无法进行工单数据显示。当等待队列中数据个数为1时,无法调换数据包显示的顺序,由于请求时间过长,将等待队列中这个唯一的数据包删除,避免在有新的数据包进入等待队列中时在长时间内无法对新的数据包进行显示。可以理解的是,在预设时间内队首数据包成功完成工单数据显示,返回第一返回值。
请参看图3,图3为本申请实施例提供的一种数据包返回值确定步骤的流程图。可选地,数据包返回值确定步骤具体分为以下步骤:
步骤S341:判断队首数据包请求进行工单数据显示的次数是否小于预设次数。
上述预设次数可以根据具体工单数据显示类型的需求进行调整。
S342:当基于队首数据包请求进行工单数据显示的次数小于预设次数时,返回第二返回值,并再次执行基于队首数据包请求进行工单数据显示至基于数据包返回值更新等待队列的步骤;其中,每基于队首数据包请求进行工单数据显示一次时,将队首数据包请求进行工单数据显示的次数加1,第二返回值表示不改变等待队列。
可以理解的是,在队首数据包请求次数小于预设次数的时候,只要没有返回第一返回值,队首数据包继续请求直到请求次数等于预设次数,在请求次数等于预设次数时,对比等待队列中的前两位的数据包,是为了互换队首数据包和第二位数据包,避免某一数据包长时间不能被显示导致其他数据包不能被显示,能够提高工单数据显示的效率。
作为一种实施方式,第二返回值可以设为除第一返回值以外的任何值。第二返回值主要是为了和第一返回值做出区别,在数据包显示不成功时让已经在处理的数据包继续请求显示避免被删除。
步骤S343:当基于队首数据包请求进行工单数据显示的次数等于预设次数时,判断队首数据包的第一工单序号和位于等待队列中第二位的数据包的第二工单序号是否相同;
步骤S344:当第一工单序号和第二工单序号不同时,将队首数据包和第二位的数据包顺序互换,并返回第二返回值;
步骤S345:当第一工单序号和第二工单序号相同时,删除队首的数据包,将第二位的数据包作为新的队首数据包。
可以理解的是,当队首数据包的工单序号即第一工单序号和第二位的数据包工单序号即第二工单序号相等时,删除队首数据包,将第二位的数据包更新为新的队首数据包重新请求进行工单数据显示。当队首数据包和第二位的数据包不相等时,第二位的数据包先请求显示,按照先进先出的原则依次进行等待队列中的其他数据包,避免队首数据包不能成功显示时其他数据包不能被显示,能够提高工单数据显示的效率。
请参看图4,图4为本申请的实施例提供的一种数据包并发请求处理装置的框图。本申请还提供了一种数据包并发请求处理装置60,包括:获取模块601,用于在每获取到一个数据包时,将数据包加入等待队列;请求模块602,用于基于等待队列中的队首数据包请求进行工单数据显示;返回模块603用于获取队首数据包的数据包返回值,数据包返回值用于表征是否完成工单数据显示;更新模块604,用于基于数据包返回值更新等待队列,并重新执行所述基于所述等待队列中的队首数据包请求进行工单数据显示至基于数据包返回值更新等待队列的步骤。
可选地,更新模块604具体用于:当数据包返回值为第一返回值时,删除等待队列中已处理的第二数据包;当数据包返回值不是第一返回值时,保持等待队列不变。
可选地,返回模块603具体用于:当在预设时间内完成队首数据包的工单数据显示时,获取第一返回值。
可选地,返回模块603具体还用于:当在预设时间内未完成队首数据包工单数据显示时,判断等待队列中数据包的数量;当等待队列中数据包的数量为1时,获取第一返回值;当等待队列中数据包的数量大于1时,判断基于队首数据包请求进行工单数据显示的次数,并基于队首数据包请求进行工单数据显示的次数,获取队首数据包的数据包返回值。
可选地,返回模块603具体还用于:当基于队首数据包请求进行工单数据显示的次数小于预设次数时,返回第二返回值,并再次执行基于队首数据包请求进行工单数据显示至基于数据包返回值更新等待队列的步骤;其中,每基于队首数据包请求进行工单数据显示一次时,将队首数据包请求进行工单数据显示的次数加1,第二返回值表示不改变等待队列。
可选地,返回模块603具体还用于:当基于队首数据包请求进行工单数据显示的次数等于预设次数时,判断队首数据包的第一工单序号和位于等待队列中第二位的数据包的第二工单序号是否相同;当第一工单序号和第二工单序号不同时,将队首数据包和第二位的数据包顺序互换,并返回第二返回值;当第一工单序号和第二工单序号相同时,返回第一返回值,将第二位的数据包作为新的队首数据包。
本实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行上述任一项方法中的步骤。
本实施例还提供了一种存储介质,所述存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行上述任一项方法中的步骤。
可选地,所述电子设备可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等电子设备。
请参看图5,图5为本申请实施例提供的一种数据包并发请求处理方法的全流程图。作为一种实施方式,获取新的数据包也就是第一数据包并记录第一数据包的获取时间。将第一数据包加入等待队列,在第一数据包加入等待队列后,判断等待队列中已经在处理的数据包也就是第二数据包的数据包返回值ResponseID是否为1,当数据包返回值ResponseID=1时表示第二数据包已经工单数据显示成功。
在接收到数据包返回值为ResponseID=1后,删除等待队列中位于队首的数据包也就是删除等待队列中的第二数据包。重新获取等待队列中的队首数据包,基于队首数据包请求工单数据显示,作为一种实施方式,从请求开始到队首数据包返回数据包返回值开始计时的800ms内队首数据包成功进行工单数据显示,则返回数据包返回值ResponseID=1到等待队列,等待队列在收到数据包返回值ResponseID=1继续处理位于等待队列的队首数据包。
当从请求开始到队首数据包返回数据包返回值进行计时的800ms内队首数据包未成功进行工单数据显示,判断等待队列中的数据包数量。当等待队列中的数据包数量小于或等于1时,返回数据包返回值ResponseID=1。当等待队列中的数据包数量大于1时,判断基于队首数据包请求工单数据显示的次数。
当基于队首数据包请求工单数据显示的次数小于预设次数,作为一种实施方式,预设次数设置为3。当基于队首数据包请求工单数据显示的次数小于3时,返回数据包返回值ResponseID=2。基于队首数据包每请求显示工单数据一次,基于队首数据包请求次数加1。等待队列在收到数据包返回值ResponseID=2时,等待队列中的队首数据包不变,继续基于队首数据包进行工单数据显示。
当基于队首数据包请求次数等于3时,判断队首数据包的工单序号和等待队列中第二位的数据包的工单序号,当队首数据包的工单序号和等待队列中第二位的数据包的工单序号相等时,返回第一返回值ResponseID=1,并重新执行所述基于所述等待队列中的队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤。当队首数据包的工单序号和等待队列中第二位数据包的工单序号不相等时,将队首数据包和第二位数据包顺序互换,返回数据包返回值ResponseID=2,并重新执行所述基于所述等待队列中的队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤。
综上所述,本申请的实施例提供了一种数据包并发请求处理方法、装置、电子设备及存储介质,该方法包括:每获取到一个数据包时,将所述数据包加入等待队列;基于所述等待队列中的队首数据包请求进行工单数据显示;获取所述队首数据包的数据包返回值,所述数据包返回值用于表征是否完成工单数据显示;基于数据包返回值更新所述等待队列,并重新执行所述基于所述等待队列中的队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤。
在上述实现过程中,通过已完成工单数据显示的数据包的返回值对所述等待队列中的数据包进行先进先出地工单数据显示,能够保证每次有一个数据包的显示请求被响应,避免工单数据界面更新缓慢或卡顿的问题,以提高工单数据显示的流畅度。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种数据包并发请求处理方法,其特征在于,包括:
每获取到一个数据包时,将所述数据包加入等待队列;
基于所述等待队列中的队首数据包请求进行工单数据显示;
获取所述队首数据包的数据包返回值,所述数据包返回值用于表征是否完成工单数据显示;
基于数据包返回值更新所述等待队列,并重新执行所述基于所述等待队列中的队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤;
其中,所述基于数据包返回值更新所述等待队列,包括:当所述数据包返回值为第一返回值时,删除所述等待队列中已处理的第二数据包;当所述数据包返回值不是所述第一返回值时,保持所述等待队列不变。
2.根据权利要求1所述的方法,其特征在于,所述获取所述队首数据包的数据包返回值,包括:
当在预设时间内完成所述队首数据包的工单数据显示时,获取所述第一返回值。
3.根据权利要求2所述的方法,其特征在于,所述获取所述队首数据包的数据包返回值,还包括:
当在预设时间内未完成所述队首数据包工单数据显示时,判断所述等待队列中数据包的数量;
当所述等待队列中数据包的数量为1时,获取所述第一返回值;
当所述等待队列中数据包的数量大于1时,判断基于所述队首数据包请求进行工单数据显示的次数,并基于所述队首数据包请求进行工单数据显示的次数,获取所述队首数据包的数据包返回值。
4.根据权利要求3所述的方法,其特征在于,所述基于所述队首数据包请求进行工单数据显示的次数,获取所述队首数据包的数据包返回值,包括:
当基于所述队首数据包请求进行工单数据显示的次数小于预设次数时,返回第二返回值,并再次执行所述基于所述队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤;
其中,每基于所述队首数据包请求进行工单数据显示一次时,将所述队首数据包请求进行工单数据显示的次数加1,所述第二返回值表示不改变所述等待队列。
5.根据权利要求4所述的方法,其特征在于,所述基于所述队首数据包请求进行工单数据显示的次数,获取所述队首数据包的数据包返回值,还包括:
当基于所述队首数据包请求进行工单数据显示的次数等于所述预设次数时,判断所述队首数据包的第一工单序号和位于所述等待队列中第二位的数据包的第二工单序号是否相同;
当所述第一工单序号和所述第二工单序号不同时,将所述队首数据包和所述第二位的数据包顺序互换,并返回所述第二返回值;
当所述第一工单序号和所述第二工单序号相同时,返回所述第一返回值,将所述第二位的数据包作为新的队首数据包。
6.一种数据包并发请求处理装置,其特征在于,包括:
获取模块,用于在每获取到一个数据包时,将所述数据包加入等待队列;
请求模块,用于基于所述等待队列中的队首数据包请求进行工单数据显示;
返回模块,用于获取所述队首数据包的数据包返回值,所述数据包返回值用于表征是否完成工单数据显示;
更新模块,用于基于数据包返回值更新所述等待队列,并重新执行所述基于所述等待队列中的队首数据包请求进行工单数据显示至所述基于数据包返回值更新所述等待队列的步骤;
其中,所述更新模块具体用于:当所述数据包返回值为第一返回值时,删除所述等待队列中已处理的第二数据包;当所述数据包返回值不是所述第一返回值时,保持所述等待队列不变。
7.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行权利要求1-5中任一项所述方法中的步骤。
8.一种存储介质,其特征在于,所述存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1-5任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911263655.7A CN111158871B (zh) | 2019-12-05 | 2019-12-05 | 数据包并发请求处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911263655.7A CN111158871B (zh) | 2019-12-05 | 2019-12-05 | 数据包并发请求处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158871A CN111158871A (zh) | 2020-05-15 |
CN111158871B true CN111158871B (zh) | 2024-02-23 |
Family
ID=70556993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911263655.7A Active CN111158871B (zh) | 2019-12-05 | 2019-12-05 | 数据包并发请求处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158871B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291769A (zh) * | 2016-04-11 | 2017-10-24 | 北京京东尚科信息技术有限公司 | 处理并发订单的方法和装置 |
WO2019019249A1 (zh) * | 2017-07-24 | 2019-01-31 | 平安科技(深圳)有限公司 | 执行网络请求的方法、装置、设备及计算机可读存储介质 |
CN109450975A (zh) * | 2018-10-10 | 2019-03-08 | 海南高灯科技有限公司 | 并发性能优化方法、装置、电子设备、可读存储介质 |
-
2019
- 2019-12-05 CN CN201911263655.7A patent/CN111158871B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291769A (zh) * | 2016-04-11 | 2017-10-24 | 北京京东尚科信息技术有限公司 | 处理并发订单的方法和装置 |
WO2019019249A1 (zh) * | 2017-07-24 | 2019-01-31 | 平安科技(深圳)有限公司 | 执行网络请求的方法、装置、设备及计算机可读存储介质 |
CN109450975A (zh) * | 2018-10-10 | 2019-03-08 | 海南高灯科技有限公司 | 并发性能优化方法、装置、电子设备、可读存储介质 |
Non-Patent Citations (1)
Title |
---|
刘建华,宋志光,徐金祥.基于单用户数据库的多用户系统的研究与实现.计算机工程与应用.2000,(第04期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111158871A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107526631B (zh) | 一种任务监控方法、装置、设备和介质 | |
US20180329921A1 (en) | Method and apparatus for storing time series data | |
CN108255620B (zh) | 一种业务逻辑处理方法、装置、业务服务器及系统 | |
US9246836B2 (en) | Single producer, single consumer lockless FIFO/LIFO queue | |
CN111414362B (zh) | 数据读取方法、装置、设备及存储介质 | |
CN108011949B (zh) | 用于获取数据的方法和装置 | |
CN107704604A (zh) | 一种消息持久化方法、服务器和计算机可读存储介质 | |
CN111784318A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111158871B (zh) | 数据包并发请求处理方法、装置、电子设备及存储介质 | |
CN112433757A (zh) | 一种确定接口调用关系的方法和装置 | |
CN109165259B (zh) | 基于网络附属存储的索引表更新方法、处理器及存储装置 | |
CN108428182B (zh) | 开发平台装置、获取保单号的方法及计算机可读存储介质 | |
CN111753141A (zh) | 一种数据管理方法及相关设备 | |
CN111209311A (zh) | 用于处理数据的方法和装置 | |
CN111261206B (zh) | 一种读写方法、装置和电子设备及可读存储介质 | |
CN110336883B (zh) | 镜像数据传输方法、装置、设备及计算机可读存储介质 | |
CN108882229B (zh) | 信息处理方法和装置 | |
CN113342270A (zh) | 卷卸载方法、装置和电子设备 | |
CN108566293B (zh) | 电子装置、zk节点信息通知方法及存储介质 | |
CN111405015A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN107209882B (zh) | 对于处在管理之下的设备的多阶段撤销注册 | |
US8869117B2 (en) | Capturing multi-component trace for unit of work | |
CN111596941B (zh) | 应用更新方法、装置、电子设备和介质 | |
CN113722389B (zh) | 数据管理方法、装置、电子设备及计算机可读存储介质 | |
CN115328477A (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 |