CN115695317B - 接入请求的排队和出队方法与装置、电子设备及存储介质 - Google Patents
接入请求的排队和出队方法与装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115695317B CN115695317B CN202211659739.4A CN202211659739A CN115695317B CN 115695317 B CN115695317 B CN 115695317B CN 202211659739 A CN202211659739 A CN 202211659739A CN 115695317 B CN115695317 B CN 115695317B
- Authority
- CN
- China
- Prior art keywords
- queue
- access request
- queuing
- dequeuing
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000004992 fission Effects 0.000 claims description 39
- 238000004422 calculation algorithm Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 6
- 230000015654 memory Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
本申请提供了一种接入请求的排队和出队方法与装置、电子设备及存储介质,方法包括:接收客户端发送的接入请求,根据所述接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据至少一种信息确定目标排队队列,若确定出目标排队队列中存在目标排队位置,则将接入请求放入目标排队位置进行排队;确定出目标排队队列中每次的接入请求出队数量,根据出队数量对目标排队队列中的接入请求进行出队,能够让那些不能立刻申请到实例的用户及时申请到实例进行云玩。
Description
技术领域
本发明涉及云应用领域,特别涉及一种接入请求的排队和出队方法与装置、电子设备及存储介质。
背景技术
随着云应用(比如云游戏)技术的发展,这种对用户终端性能消耗较小的应用运营方式越来越多的被应用公司、平台和用户所接受。而云端的实例数量是有限的,当云端可用实例不足(比如云应用太过火爆,同时请求云玩的用户数量过多)时,会导致一部分用户无法正常云玩,从而出现用户退出的情况。
有鉴于此,如何提供一种接入请求的排队和出队的方案,能够让那些不能立刻申请到实例的用户及时申请到实例进行云玩,成为亟待解决的技术问题。
发明内容
因此,本申请实施例提供一种接入请求的排队和出队方法与装置、电子设备及存储介质,能够让那些不能立刻申请到实例的用户及时申请到实例进行云玩。
第一方面,本申请实施例提供了一种接入请求的排队和出队方法,包括:
接收客户端发送的接入请求,根据所述接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据所述至少一种信息确定目标排队队列,若确定出所述目标排队队列中存在目标排队位置,则将所述接入请求放入所述目标排队位置进行排队;
按照预设的裂变算法确定出所述目标排队队列中每次的接入请求出队数量,根据所述出队数量对所述目标排队队列中的接入请求进行出队。
第二方面,本申请实施例还提供了一种接入请求的排队和出队装置,包括:
排队单元,用于接收客户端发送的接入请求,根据所述接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据所述至少一种信息确定目标排队队列,若确定出所述目标排队队列中存在目标排队位置,则将所述接入请求放入所述目标排队位置进行排队;
出队单元,用于按照预设的裂变算法确定出所述目标排队队列中每次的接入请求出队数量,根据所述出队数量对所述目标排队队列中的接入请求进行出队。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面所述的接入请求的排队和出队方法的步骤。
第四方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面所述的接入请求的排队和出队方法的步骤。
综上,本申请实施例提供的接入请求的排队和出队方法与装置、电子设备及存储介质,将用户的接入请求根据接入请求的内容放入目标排队队列的目标排队位置进行排队,同时采用裂变算法确定出所述目标排队队列中每次的接入请求出队数量,根据所述出队数量对所述目标排队队列中的接入请求进行出队,能够让那些不能立刻申请到实例的用户通过排队出队的方式及时申请到实例。
附图说明
图1为本申请实施例提供的一种接入请求的排队和出队方法一实施例的流程示意图;
图2为本申请实施例提供的一种接入请求的排队和出队装置一实施例的结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
参照图1所示,为本申请实施例提供的一种接入请求的排队和出队方法的流程示意图,可以包括:
S10、接收客户端发送的接入请求,根据所述接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据所述至少一种信息确定目标排队队列,若确定出所述目标排队队列中存在目标排队位置,则将所述接入请求放入所述目标排队位置进行排队;
本实施例中,需要说明的是,某种操作系统(例如安卓操作系统)加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以视为一个实例,实例部署在各地的IDC(Internet Data Center,互联网数据中心)机房中,其上可以运行各种应用,运行在实例上的应用称为云应用。每个接入商都会配有固定的可用实例数,如果超出当前可用实例数,用户可主动选择退出或进行排队等待可用实例。
具体地,用户申请云端实例时,会先进行业务逻辑校验,其中就包括判断用户对应的接入商当前的可用实例是否已用完;如果已用完,可以通过异步消息告诉用户当前队列排队人数以及是否需要继续排队。如果用户选择不排队,就会直接退出业务;而如果用户选择继续排队,则会根据接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据所述至少一种信息确定目标排队队列,若确定出所述目标排队队列中存在目标排队位置,则将所述接入请求放入所述目标排队位置进行排队。用户排队后,如果长时间没有可用实例,就会一直排队,直到有可用实例,用户才有可能出队去申请到云玩实例。如果针对某些接入商在后台配置了用户默认确认排队,则用户不需要主动确认就会进入排队。
S11、按照预设的裂变算法确定出所述目标排队队列中每次的接入请求出队数量,根据所述出队数量对所述目标排队队列中的接入请求进行出队。
本实施例中,需要说明的是,用户排队后,可以按照预设的裂变算法确定出目标排队队列中每次的接入请求出队数量,根据出队数量对目标排队队列中的接入请求进行出队,其中,裂变算法指的是对上一次的接入请求成功出队数量进行裂变,得到本次的接入请求出队数量,出队指的是基于接入请求向云端服务器申请实例。之后可以根据出队结果(即实例的申请结果)以及历史同一目标排队位置的实际出队时长计算目标排队队列中各个接入请求的预估出队时长,将预估出队时长发送给对应的客户端进行显示,以便于用户获知当前需等待的时间,继而决定是否继续排队。
本申请实施例提供的接入请求的排队和出队方法,将用户的接入请求根据接入请求的内容放入目标排队队列的目标排队位置进行排队,同时采用裂变算法确定出所述目标排队队列中每次的接入请求出队数量,根据所述出队数量对所述目标排队队列中的接入请求进行出队,能够让那些不能立刻申请到实例的用户通过排队出队的方式及时申请到实例。
在前述方法实施例的基础上,所述根据所述接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据所述至少一种信息确定目标排队队列,可以包括:
获取所述接入请求中的接入商信息、云应用信息、端类型信息、IP地址和队列信息,根据所述接入商信息、云应用信息、端类型信息确定所述队列关键字,根据所述队列关键字确定所述实例类型和所属队列类型,根据所述IP地址确定所述路由节点,根据所述队列信息确定所述队列标识;
根据所述至少一种信息生成队列名称,若判断获知存在名称与所述队列名称相同的队列,则确定所述队列为目标排队队列,或者若判断获知不存在名称与所述队列名称相同的队列,则创建名称为所述队列名称的队列,并确定所述队列为目标排队队列。
本实施例中,需要说明的是,接入请求中可以携带有接入商信息、云应用信息(比如云应用名称)、端类型信息(比如客户端所使用的系统类型)、IP地址和队列信息(用于表示多队列中具体某一个队列的信息)中的至少一种,这些信息中,根据接入商信息、云应用信息和端类型信息可以通过查询预设的接入商信息、云应用信息和端类型信息,与队列关键字的对应关系,确定接入商信息、云应用信息和端类型信息对应的队列关键字,其中,预设的接入商信息、云应用信息和端类型信息,与队列关键字的对应关系中包含至少一组接入商信息、云应用信息和端类型信息,与队列关键字的对应关系,队列关键字主要是和业务挂钩,用于表示对当前接入商的云应用对应的接入请求进行排队的队列的队列类型是多队列还是单队列对应的关键字。对于队列关键字,需要预先设置与其绑定的实例类型,其中,实例类型指的是云端实例的版本,比如根据业务划分的一代实例、二代实例、三代实例、四代实例等。根据确定出的队列关键字可以确定出所属队列类型(所属队列类型包括多队列或单队列),以及与队列关键字绑定的实例类型;根据接入请求中的IP地址可以确定与用户所在地比较近的路由节点,在后续对接入请求进行出队时,可以申请路由节点对应的IDC机房中的实例;根据接入请求中的队列信息可以确定队列标识(用于表示多队列中具体某一个队列的标识,比如说包含3个队列的多队列中的第2个队列的标识),需要说明的是,队列信息和队列标识可以相同,也可以不相同,而如果队列信息和队列标识不相同,则需要预先设置队列信息和队列标识的对应关系,则基于该对应关系,可以确定接入请求中的队列信息对应的队列标识。
在根据接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息后,可以根据所述至少一种信息生成队列名称,具体可以将所述至少一种信息进行拼接得到队列名称。在得到队列名称后,需要判断当前是否存在名称与所述队列名称相同的队列,如果存在名称与所述队列名称相同的队列,则确定所述队列为目标排队队列,或者如果不存在名称与所述队列名称相同的队列,则创建名称为所述队列名称的队列,并确定所述队列为目标排队队列。
本实施例中,根据用户的接入请求确定出目标排队队列,便于及时、合理地对用户的接入请求进行排队。
在前述方法实施例的基础上,所述若确定出所述目标排队队列中存在目标排队位置,则将所述接入请求放入所述目标排队位置进行排队,可以包括:
若根据所述接入请求的优先级和/或先后顺序在所述目标排队队列中查找到空的排队位置,则将所述空的排队位置确定为所述目标排队位置。
本实施例中,在确定出目标排队队列之后,需要根据接入请求的优先级(或者说级别)和/或先后顺序(指的是接入请求的创建时间的先后顺序)在目标排队队列中查找空的排队位置,如果查找到,则可以将空的排队位置确定为目标排队位置,将接入请求放入目标排队位置;而如果查找不到,则可以将用户退出排队。需要说明的是,接入请求的排队原则可以是:单队列下,如果都是普通用户,接入请求的创建时间越久,排队位置越靠前;如果是普通用户和vip用户一起排队,且他们属于同一队列,则用户级别越高,排队位置越靠前;同一级别下,接入请求的创建时间越久排队位置越靠前。多队列下,如果是普通用户和vip用户一起排队,则因为他们在不同队列下,所以他们之间的排队没有影响。无论是什么级别用户,接入请求的创建时间越早,排队位置在所在队列越靠前。
在前述方法实施例的基础上,所述按照预设的裂变算法确定出所述目标排队队列中每次的接入请求出队数量,可以包括:
对前一次的接入请求出队成功的数量进行裂变,得到裂变数量;
若判断获知所述裂变数量小于或等于令牌桶中的令牌数量,则将所述裂变数量作为后一次的接入请求出队数量,或者若判断获知所述裂变数量大于令牌桶中的令牌数量,则将所述令牌数量作为后一次的接入请求出队数量。
本实施例中,可以采用定时任务出队,具体来说,可以先扫描队列,依次遍历每个队列尝试出队,出队时根据指定令牌桶中的令牌数量决定当前接入请求是否能出队,如果能出队,则将一个令牌分配给当前接入请求,基于当前接入请求进行实例申请,如果成功申请到实例,则当前接入请求出队成功,开始进行裂变,裂变后的队列再次尝试出队,再次走前面出队的逻辑。需要说明的是,可以设置指定令牌桶中令牌的数量,对于每一个接入请求来说,该接入请求出队时,都会为其分配一个令牌,只有令牌桶中存在令牌时,才允许该接入请求出队,当该接入请求成功出队后,可以将之前为其分配的令牌重新放入令牌桶;而当令牌桶中没有令牌时,不允许接入请求出队。裂变数量可以为前一次的接入请求出队成功的数量的N倍(N为大于1的正整数),如果裂变数量小于或等于令牌桶中的令牌数量,则将所述裂变数量作为后一次的接入请求出队数量,或者如果裂变数量大于令牌桶中的令牌数量,则将所述令牌数量作为后一次的接入请求出队数量,本实施例中,受约于令牌桶的逻辑,能够很好的控制出队速率,并提高出队成功率,避免同时出队的接入请求数量过多而给服务器造成压力而无法及时、成功出队。
在前述方法实施例的基础上,所述方法还可以包括:
根据出队结果以及历史同一目标排队位置的实际出队时长计算所述目标排队队列中各个接入请求的预估出队时长,将所述预估出队时长发送给对应的客户端。
本实施例中,用户确认排队或默认排队后,如果排队成功,则会第一时间收到当前所在队列排队人数的位置、排队的总人数以及预估排队时长等信息,每隔一个周期(周期可配置)都能收到最新的排队情况,避免用户长时间排队,确保好的用户体验。预估时长可默认设置定长的等待时间,也可以通过接入商去选择是否需要排队算法计算等待时间。排队算法主要是通过对以往排队出队的用户进行数据统计与分析,进而对已有排队的用户进行算法分析得出的估算时间。
本实施例中,根据出队结果以及历史同一目标排队位置的实际出队时长计算所述目标排队队列中各个接入请求的预估出队时长,将所述预估出队时长发送给对应的客户端,能够让排队用户了解到当前位置的排队时长,以便于用户选择继续排队还是退出云玩。
在前述方法实施例的基础上,所述根据出队结果以及历史同一目标排队位置的实际出队时长计算所述目标排队队列中各个接入请求的预估出队时长,可以包括:
记所述目标排队队列的名称为X,若判断获知存在名称为X的历史排队队列,则对于所述目标排队队列中任意一个存在接入请求的排队位置P,获取所述目标排队队列和名称为X的历史排队队列中P位置的实际出队时长,计算所述P位置的实际出队时长中非空值的实际出队时长的均值,并将所述均值作为所述目标排队队列中P位置的接入请求的预估出队时长,其中,对于所述名称为X的历史排队队列中任一队列S,如果S队列中存在初始入队位置为P位置的接入请求,则S队列中P位置的实际出队时长为S队列中初始入队位置为P位置的任意一个接入请求的实际出队时长或者S队列中初始入队位置为P位置的至少两个接入请求的实际出队时长的均值,或者如果S队列中不存在初始入队位置为P位置的接入请求,则S队列中P位置的实际出队时长为空值或者为S队列中所有位置的实际出队时长的均值,若所述目标排队队列中初始入队位置为P位置的接入请求还未出队,则所述目标排队队列中P位置的实际出队时长为空值,或者若所述目标排队队列中初始入队位置为P位置的接入请求已出队,则所述目标排队队列中P位置的实际出队时长为所述目标排队队列中初始入队位置为P位置的任意一个接入请求的实际出队时长或者所述目标排队队列中初始入队位置为P位置的至少两个接入请求的实际出队时长的均值。
本实施例中,以具体的例子说明预估出队时长的计算方法。假设名称为X的排队队列一共有3个,队列长度均为5,按照队列创建时间从早到晚的顺序依次记为1队列、2队列和3队列,1队列和2队列是名称为X的历史排队队列,3队列是名称为X的目标排队队列。1队列中按照接入请求的放入先后顺序放入有6个接入请求,分别记为接入请求A、接入请求B、接入请求C、接入请求D、接入请求E和接入请求F。对于接入请求A、接入请求B、接入请求C、接入请求D和接入请求E中的任意一个接入请求,该接入请求放入1队列时,如果该接入请求前面的接入请求均没有出队,则该接入请求的预估出队时长为预设值(比如5分钟,此值可以根据需要设置,此处不再赘述)与该接入请求的位置的乘积,其中,该接入请求的位置为该接入请求在1队列中的排序。比如说,接入请求A放入1队列时的预估出队时长为预设值与接入请求A的位置(即1)的乘积,即预设值;接入请求B放入1队列时接入请求A还未出队,则接入请求B放入1队列时的预估出队时长为预设值与接入请求B的位置(即2)的乘积,即预设值的2倍;接入请求C放入1队列时接入请求A和接入请求B还未出队,则接入请求C放入1队列时的预估出队时长为预设值与接入请求C的位置(即3)的乘积,即预设值的3倍;接入请求D放入1队列时接入请求A、接入请求B和接入请求C均未出队,则接入请求D放入1队列时的预估出队时长为预设值与接入请求D的位置(即4)的乘积,即预设值的4倍;接入请求E放入1队列时接入请求A、接入请求B、接入请求C和接入请求D未出队,则接入请求E放入1队列时的预估出队时长为预设值与接入请求E的位置(即5)的乘积,即预设值的5倍。对于接入请求B、接入请求C、接入请求D、接入请求E和接入请求F中的任意一个接入请求,该接入请求放入1队列时,如果该接入请求前面的接入请求中存在已出队的接入请求,则该接入请求的预估出队时长为1队列中已出队的接入请求的实际出队时长的均值与该接入请求的位置的乘积,其中,接入请求的实际出队时长为接入请求的出队时间与入队时间的差值。比如说,假设接入请求C放入1队列时,接入请求A和接入请求B均已出队,此时接入请求C的位置为1,则接入请求C的预估出队时长为接入请求A的实际出队时长和接入请求B的实际出队时长的均值;假设接入请求D放入1队列时,接入请求A和接入请求B均已出队,接入请求C未出队,此时接入请求D的位置为2,则接入请求D的预估出队时长为接入请求A的实际出队时长和接入请求B的实际出队时长的均值,与2的乘积。需要说明的是,如果某一个接入请求(比如接入请求B)出队之后,接入请求F进入1队列,此时接入请求F的初始入队位置为4,则接入请求F的预估出队时长为接入请求A的实际出队时长和接入请求B的实际出队时长的均值,与4的乘积。如果1队列中有接入请求入队,那就计算新入队的接入请求的预估出队时长;如果1队列中有接入请求出队,那就重新计算出队后1队列中剩余的接入请求的预估出队时长。在1队列中接入请求出队的过程中,对于某一个队列状态下1队列中的任意一个接入请求,该接入请求的预估出队时长为1队列中已出队的接入请求的实际出队时长的均值与该接入请求的位置的乘积,比如说,当前1队列中接入请求为接入请求C、接入请求D、接入请求E和接入请求F,具体形式如下:F→E→D→C,则接入请求E的预估出队时长为接入请求A的实际出队时长和接入请求B的实际出队时长的均值,与3的乘积。
2队列中按照接入请求的放入先后顺序放入有4个接入请求,分别记为接入请求G、接入请求H、接入请求I和接入请求J,对于接入请求G、接入请求H、接入请求I和接入请求J中的任意一个接入请求,该接入请求放入2队列时,如果该接入请求前面的接入请求均没有出队,假设该接入请求的初始入队位置为P,则该接入请求的预估出队时长为1队列中初始入队位置为P的任意一个接入请求的实际出队时长或者1队列中初始入队位置为P的所有接入请求中至少两个接入请求的实际出队时长的均值,具体地,接入请求G的初始入队位置为1,则接入请求G的预估出队时长为1队列中初始入队位置为1的任意一个接入请求的实际出队时长或者1队列中初始入队位置为1的所有接入请求中至少两个接入请求的实际出队时长的均值,比如,如果1队列中初始入队位置为1的所有接入请求包括接入请求A和接入请求B(接入请求A的入队时间早于接入请求B),则接入请求G的预估出队时长为接入请求A的实际出队时长或者接入请求B的实际出队时长或者接入请求A和接入请求B的实际出队时长的均值;假设接入请求H的初始入队位置为2,1队列中只有接入请求C的初始入队位置为2,则接入请求H的预估出队时长为1队列中初始入队位置为2的任意一个接入请求的实际出队时长或者1队列中初始入队位置为2的所有接入请求中至少两个接入请求的实际出队时长的均值,即接入请求C的实际出队时长。在2队列中接入请求出队的过程中,对于某一个队列状态下2队列中的任意一个接入请求,假设该接入请求的位置为P,该接入请求的预估出队时长为1队列和2队列中P位置的实际出队时长中非空值的实际出队时长的均值。如果1队列中存在初始入队位置为P位置的接入请求,则1队列中P位置的实际出队时长为1队列中初始入队位置为P位置的任意一个接入请求的实际出队时长或者1队列中初始入队位置为P位置的所有接入请求中至少两个接入请求的实际出队时长的均值,比如,1队列中接入请求A和接入请求B的初始入队位置为P位置,且接入请求A早于接入请求B入队,则1队列中P位置的实际出队时长为1队列中接入请求A的实际出队时长或者接入请求B的实际出队时长或者1队列中接入请求A的实际出队时长和接入请求B的实际出队时长的均值;而如果1队列中不存在初始入队位置为P位置的接入请求,则1队列中P位置的实际出队时长为空值或者为1队列中所有位置的实际出队时长的均值,其中,1队列中所有位置的实际出队时长指的是1队列中属于接入请求初始入队位置的位置的实际出队时长,比如进入1队列中总共有3个接入请求,按照进入的先后顺序,分别是接入请求A、接入请求B和接入请求C,接入请求A和接入请求B的初始入队位置为1,接入请求C的初始入队位置为2,则1队列中位置3的实际出队时长可以为空值或者1队列中位置1和位置2的实际出队时长的均值,其中,1队列中位置1的实际出队时长可以为接入请求A的实际出队时长或者或者接入请求B的实际出队时长或者接入请求A和接入请求B的实际出队时长的均值,1队列中位置2的实际出队时长可以为接入请求C的实际出队时长。如果2队列中初始入队位置为P位置的接入请求还未出队,则2队列中P位置的实际出队时长为空值,比如,2队列中接入请求G、接入请求H、接入请求I和接入请求J依次入队,之后接入请求G出队成功,则接入请求H往前移动一个位置等待出队,此时接入请求H移动至位置1,接入请求I移动至位置2,接入请求J移动至位置3,2队列中位置2为接入请求H的初始入队位置,因为此时接入请求H还未成功出队,因此2队列中位置2的实际出队时长为空值。而如果2队列中初始入队位置为P位置的接入请求已经出队,则2队列中P位置的实际出队时长为2队列中初始入队位置为P位置且已经出队的任意一个接入请求的实际出队时长或2队列中初始入队位置为P位置且已经出队的至少两个接入请求的实际出队时长的均值,比如,比如,2队列中接入请求G先入队,在接入请求G出队后接入请求H入队,在接入请求H出队后,接入请求I和接入请求J依次入队,此时接入请求I移动至位置1,接入请求J移动至位置2,2队列中位置1的实际出队时长可以为2队列中接入请求G的实际出队时长或2队列中接入请求H的实际出队时长或2队列中接入请求G的实际出队时长与2队列中接入请求H的实际出队时长的均值,2队列中位置2的实际出队时长为空值。
3队列中按照接入请求的放入先后顺序放入有5个接入请求,分别记为接入请求K、接入请求L、接入请求M、接入请求N和接入请求O,在3队列中接入请求出队的过程中,某一位置的接入请求的预估出队时长为1队列、2队列和3队列中该位置的实际出队时长中非空值的均值,比如对于3队列中位置3,如果1队列中位置3的实际出队时长和2队列中位置3的实际出队时长均不为空值,3队列中位置3的实际出队时长为空值,则当前3队列中位置3的接入请求的预估出队时长为1队列中位置3的实际出队时长和2队列中位置3的实际出队时长的均值;再比如对于3队列中位置3,如果1队列中位置3的实际出队时长和3队列中位置3的实际出队时长均不为空值,2队列中位置3的实际出队时长为空值,则当前3队列中位置3的接入请求的预估出队时长为1队列中位置3的实际出队时长和3队列中位置3的实际出队时长的均值。3队列中任意一个位置的实际出队时长的计算方法与2队列中任意一个位置的实际出队时长的计算方法一致,此处不再赘述。
需要说明的是,本实施例中仅以名称为X的3个排队队列为例进行说明,当后续持续存在接入请求时,会创建更多的排队队列,此时目标排队队列中任一个存在接入请求的排队位置P的预估出队时长的计算过程与本实施例中3队列中相应位置的预估出队时长的计算过程一致,此处不再赘述。
在前述方法实施例的基础上,所述方法还可以包括:
若判断获知不存在名称为X的历史排队队列,且所述目标排队队列中存在已出队的接入请求,则计算所述目标排队队列中各个接入请求的预估出队时长,所述预估出队时长=所述已出队的接入请求的实际出队时长的均值*所述目标排队队列中对应接入请求的位置,*表示乘法运算。
本实施例中,假设名称为Y的排队队列只有1个,记为4队列,队列长度为5,4队列是目标排队队列。4队列中按照接入请求的放入先后顺序放入有4个接入请求,分别记为接入请求R、接入请求S、接入请求T和接入请求U,当接入请求U放入4队列时,接入请求R和接入请求S均已出队,接入请求T还未出队,则接入请求T此时的位置为位置1,接入请求U此时的位置为位置2,则接入请求T的预估出队时长为接入请求R的实际出队时长与接入请求S的实际出队时长的均值,与1的乘积,即接入请求R的实际出队时长与接入请求S的实际出队时长的均值;接入请求U的预估出队时长为接入请求R的实际出队时长与接入请求S的实际出队时长的均值,与2的乘积,即接入请求R的实际出队时长与接入请求S的实际出队时长的和。
参照图2所示,为本申请实施例提供的一种接入请求的排队和出队装置的结构示意图,包括:
排队单元20,用于接收客户端发送的接入请求,根据所述接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据所述至少一种信息确定目标排队队列,若确定出所述目标排队队列中存在目标排队位置,则将所述接入请求放入所述目标排队位置进行排队;
出队单元21,用于按照预设的裂变算法确定出所述目标排队队列中每次的接入请求出队数量,根据所述出队数量对所述目标排队队列中的接入请求进行出队。
本申请实施例提供的接入请求的排队和出队装置,借助于排队单元20将用户的接入请求根据接入请求的内容放入目标排队队列的目标排队位置进行排队,同时借助于出队单元21采用裂变算法确定出所述目标排队队列中每次的接入请求出队数量,根据所述出队数量对所述目标排队队列中的接入请求进行出队,能够让那些不能立刻申请到实例的用户通过排队出队的方式及时申请到实例。
本申请实施例提供的接入请求的排队和出队装置,其实现过程与本申请实施例提供的接入请求的排队和出队方法一致,所能达到的效果也与本申请实施例提供的接入请求的排队和出队方法相同,在此不再赘述。
本申请中,可以采用先进的定时任务,让排队用户出队;通过引进令牌桶统一管理出队限流,既能降低高峰期对服务器的压力,又能保证玩家的云玩体验。出队主要采用了裂变算法,出队数量以及裂变数量可以根据当前接入商的用户量进行调控;满足接入商在寒暑假或者重大节假日时云端实例主动扩容的场景;裂变算法主要是根据成功出队用户的数量来判断下一次出队的数量,通过裂变能保证短时间内,在大量玩家云玩结束后,让大量新用户及时申请到实例进行云玩。
如图3所示,本申请实施例提供的一种电子设备,包括:处理器30、存储器31和总线32,所述存储器31存储有所述处理器30可执行的机器可读指令,当电子设备运行时,所述处理器30与所述存储器31之间通过总线32通信,所述处理器30执行所述机器可读指令,以执行如上述接入请求的排队和出队方法的步骤。
具体地,上述存储器31和处理器30能够为通用的存储器和处理器,这里不做具体限定,当处理器30运行存储器31存储的计算机程序时,能够执行上述接入请求的排队和出队方法。
对应于上述接入请求的排队和出队方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述接入请求的排队和出队方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种接入请求的排队和出队方法,其特征在于,包括:
接收客户端发送的接入请求,根据所述接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据所述至少一种信息确定目标排队队列,若确定出所述目标排队队列中存在目标排队位置,则将所述接入请求放入所述目标排队位置进行排队;
按照预设的裂变算法确定出所述目标排队队列中每次的接入请求出队数量,根据所述出队数量对所述目标排队队列中的接入请求进行出队;
所述按照预设的裂变算法确定出所述目标排队队列中每次的接入请求出队数量,包括:
对前一次的接入请求出队成功的数量进行裂变,得到裂变数量;
若判断获知所述裂变数量小于或等于令牌桶中的令牌数量,则将所述裂变数量作为后一次的接入请求出队数量,或者若判断获知所述裂变数量大于令牌桶中的令牌数量,则将所述令牌数量作为后一次的接入请求出队数量。
2.根据权利要求1所述的方法,其特征在于,所述根据所述接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据所述至少一种信息确定目标排队队列,包括:
获取所述接入请求中的接入商信息、云应用信息、端类型信息、IP地址和队列信息,根据所述接入商信息、云应用信息、端类型信息确定所述队列关键字,根据所述队列关键字确定所述实例类型和所属队列类型,根据所述IP地址确定所述路由节点,根据所述队列信息确定所述队列标识;
根据所述至少一种信息生成队列名称,若判断获知存在名称与所述队列名称相同的队列,则确定所述队列为目标排队队列,或者若判断获知不存在名称与所述队列名称相同的队列,则创建名称为所述队列名称的队列,并确定所述队列为目标排队队列。
3.根据权利要求2所述的方法,其特征在于,所述若确定出所述目标排队队列中存在目标排队位置,则将所述接入请求放入所述目标排队位置进行排队,包括:
若根据所述接入请求的优先级和/或先后顺序在所述目标排队队列中查找到空的排队位置,则将所述空的排队位置确定为所述目标排队位置。
4.根据权利要求1所述的方法,其特征在于,还包括:
根据出队结果以及历史同一目标排队位置的实际出队时长计算所述目标排队队列中各个接入请求的预估出队时长,将所述预估出队时长发送给对应的客户端。
5.根据权利要求4所述的方法,其特征在于,所述根据出队结果以及历史同一目标排队位置的实际出队时长计算所述目标排队队列中各个接入请求的预估出队时长,包括:
记所述目标排队队列的名称为X,若判断获知存在名称为X的历史排队队列,则对于所述目标排队队列中任意一个存在接入请求的排队位置P,获取所述目标排队队列和名称为X的历史排队队列中P位置的实际出队时长,计算所述P位置的实际出队时长中非空值的实际出队时长的均值,并将所述均值作为所述目标排队队列中P位置的接入请求的预估出队时长,其中,对于所述名称为X的历史排队队列中任一队列S,如果S队列中存在初始入队位置为P位置的接入请求,则S队列中P位置的实际出队时长为S队列中初始入队位置为P位置的任意一个接入请求的实际出队时长或者S队列中初始入队位置为P位置的至少两个接入请求的实际出队时长的均值,或者如果S队列中不存在初始入队位置为P位置的接入请求,则S队列中P位置的实际出队时长为空值或者为S队列中所有位置的实际出队时长的均值,若所述目标排队队列中初始入队位置为P位置的接入请求还未出队,则所述目标排队队列中P位置的实际出队时长为空值,或者若所述目标排队队列中初始入队位置为P位置的接入请求已出队,则所述目标排队队列中P位置的实际出队时长为所述目标排队队列中初始入队位置为P位置的任意一个接入请求的实际出队时长或者所述目标排队队列中初始入队位置为P位置的至少两个接入请求的实际出队时长的均值。
6.根据权利要求5所述的方法,其特征在于,还包括:
若判断获知不存在名称为X的历史排队队列,且所述目标排队队列中存在已出队的接入请求,则计算所述目标排队队列中各个接入请求的预估出队时长,所述预估出队时长=所述已出队的接入请求的实际出队时长的均值*所述目标排队队列中对应接入请求的位置,*表示乘法运算。
7.一种接入请求的排队和出队装置,其特征在于,包括:
排队单元,用于接收客户端发送的接入请求,根据所述接入请求确定队列关键字、路由节点、实例类型、所属队列类型和队列标识中的至少一种信息,根据所述至少一种信息确定目标排队队列,若确定出所述目标排队队列中存在目标排队位置,则将所述接入请求放入所述目标排队位置进行排队;
出队单元,用于按照预设的裂变算法确定出所述目标排队队列中每次的接入请求出队数量,根据所述出队数量对所述目标排队队列中的接入请求进行出队;
所述出队单元,用于:
对前一次的接入请求出队成功的数量进行裂变,得到裂变数量;
若判断获知所述裂变数量小于或等于令牌桶中的令牌数量,则将所述裂变数量作为后一次的接入请求出队数量,或者若判断获知所述裂变数量大于令牌桶中的令牌数量,则将所述令牌数量作为后一次的接入请求出队数量。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至6任一项所述的接入请求的排队和出队方法的步骤。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至6任一项所述的接入请求的排队和出队方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211659739.4A CN115695317B (zh) | 2022-12-23 | 2022-12-23 | 接入请求的排队和出队方法与装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211659739.4A CN115695317B (zh) | 2022-12-23 | 2022-12-23 | 接入请求的排队和出队方法与装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115695317A CN115695317A (zh) | 2023-02-03 |
CN115695317B true CN115695317B (zh) | 2023-04-07 |
Family
ID=85055746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211659739.4A Active CN115695317B (zh) | 2022-12-23 | 2022-12-23 | 接入请求的排队和出队方法与装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115695317B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930434A (zh) * | 2020-05-29 | 2020-11-13 | 北京视博云信息技术有限公司 | 一种云应用的启动方法、装置、可读存储介质及设备 |
CN111988478A (zh) * | 2020-09-02 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 一种呼入管理方法、装置、服务器及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4604694A (en) * | 1983-12-14 | 1986-08-05 | International Business Machines Corporation | Shared and exclusive access control |
CN100438698C (zh) * | 2005-11-23 | 2008-11-26 | 华为技术有限公司 | 一种业务呼叫排队的方法 |
EP3720069A4 (en) * | 2017-12-31 | 2020-12-02 | Huawei Technologies Co., Ltd. | METHOD, DEVICE, AND SYSTEM FOR SENDING A MESSAGE |
CN109543923B (zh) * | 2018-12-21 | 2022-09-23 | 英华达(上海)科技有限公司 | 车辆排队时间预测方法、系统、设备及存储介质 |
CN113806102B (zh) * | 2020-06-15 | 2023-11-21 | 中国移动通信集团浙江有限公司 | 消息队列处理方法、装置及计算设备 |
CN113329078B (zh) * | 2021-05-27 | 2023-02-21 | 北京达佳互联信息技术有限公司 | 数据存储的方法和装置 |
CN113642780A (zh) * | 2021-07-23 | 2021-11-12 | 广州点云科技有限公司 | 一种排队时长的预测方法及系统 |
CN114051057B (zh) * | 2021-11-01 | 2023-11-03 | 北京百度网讯科技有限公司 | 云设备排队时长的确定方法、装置、电子设备和介质 |
-
2022
- 2022-12-23 CN CN202211659739.4A patent/CN115695317B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930434A (zh) * | 2020-05-29 | 2020-11-13 | 北京视博云信息技术有限公司 | 一种云应用的启动方法、装置、可读存储介质及设备 |
CN111988478A (zh) * | 2020-09-02 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 一种呼入管理方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115695317A (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109104336B (zh) | 服务请求处理方法、装置、计算机设备及存储介质 | |
CN106095572B (zh) | 一种大数据处理的分布式调度系统及方法 | |
CN108282527B (zh) | 生成服务实例的分布式系统和方法 | |
CN110428124A (zh) | 任务分配方法、任务分配装置、存储介质及计算机设备 | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
CN108123866A (zh) | 消息传输方法及装置 | |
WO2014146441A1 (en) | Method, server and system for processing task data | |
CN111857992B (zh) | 一种Radosgw模块中线程资源分配方法和装置 | |
US8170042B2 (en) | Transmit-side scaler and method for processing outgoing information packets using thread-based queues | |
CN111935242A (zh) | 数据传输方法、装置、服务器以及存储介质 | |
CN109298888B (zh) | 队列的数据存取方法及装置 | |
GB2480764A (en) | Load balancing traffic manager for multiple server cluster with multiple parallel queues running substantially independently | |
CN115695317B (zh) | 接入请求的排队和出队方法与装置、电子设备及存储介质 | |
CN116302453B (zh) | 量子电子混合平台的任务调度方法及装置 | |
CN106953933B (zh) | 一种消息推送方法及装置、电子设备 | |
CN108153494A (zh) | 一种io请求处理方法及装置 | |
CN111124672A (zh) | 基于Redis集群的数据分配的方法及相关设备 | |
CN110086881A (zh) | 业务处理方法、装置及设备 | |
CN111522647B (zh) | 一种最小化租赁成本的公有云服务租赁方法 | |
CN109905459A (zh) | 一种数据传输方法及装置 | |
CN113744013B (zh) | 订单号的生成方法、装置、服务器及存储介质 | |
CN108521382A (zh) | 一种消息发送方法、装置及系统 | |
CN110162415B (zh) | 用于处理数据请求的方法、服务器、装置及存储介质 | |
CN108829824B (zh) | 互联网运营活动中的资源处理方法及装置 | |
CN111314245A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240109 Address after: 230031 Room 672, 6/F, Building A3A4, Zhong'an Chuanggu Science Park, No. 900, Wangjiang West Road, High-tech Zone, Hefei, Anhui Patentee after: Anhui Haima Cloud Technology Co.,Ltd. Address before: 301700 room 2d25, Building 29, No.89 Heyuan Road, Jingjin science and Technology Valley Industrial Park, Wuqing District, Tianjin Patentee before: HAIMAYUN (TIANJIN) INFORMATION TECHNOLOGY CO.,LTD. |
|
TR01 | Transfer of patent right |