CN106603723A - 一种请求消息处理方法及装置 - Google Patents

一种请求消息处理方法及装置 Download PDF

Info

Publication number
CN106603723A
CN106603723A CN201710048374.4A CN201710048374A CN106603723A CN 106603723 A CN106603723 A CN 106603723A CN 201710048374 A CN201710048374 A CN 201710048374A CN 106603723 A CN106603723 A CN 106603723A
Authority
CN
China
Prior art keywords
node
request message
idle node
idle
current 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.)
Granted
Application number
CN201710048374.4A
Other languages
English (en)
Other versions
CN106603723B (zh
Inventor
凌少虎
刘林
张绍鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710048374.4A priority Critical patent/CN106603723B/zh
Publication of CN106603723A publication Critical patent/CN106603723A/zh
Application granted granted Critical
Publication of CN106603723B publication Critical patent/CN106603723B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例提供一种请求消息处理方法及装置,通过在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;对所述当前目标非空闲节点中存储的请求消息进行处理;如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤(其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点)的方式,实现了对请求消息的顺序处理,进而保证了应用服务器的性能。

Description

一种请求消息处理方法及装置
技术领域
本发明涉及请求消息处理技术领域,具体涉及一种请求消息处理方法及装置。
背景技术
随着科技的发展,计算机应用在人们的日常生活中占有越来越重要的地位。应用不仅可为用户的生活提供便利,而且可丰富用户的生活(比如,为用户提供娱乐内容)。目前通常是由应用服务器在网络侧为应用的常规功能提供服务支持。例如,应用服务器可接收用户通过应用发送的请求消息,并对所述请求消息进行处理以执行相应的操作。
现有技术中,一旦应用服务器接收到请求消息,便会立即对请求消息进行处理。因此,当应用服务器同时接收到多个请求消息时,通常会存在应用服务器同时对接收到的多个请求消息进行处理,导致应用服务器CPU负荷剧增,进而造成应用服务器性能降低的问题。例如,邮件服务器接收到邮件发送请求消息时,会立即对所述邮件发送请求消息进行处理。因此,当邮件服务器同时接收到多个邮件发送请求消息时,邮件服务器会同时对接收到的多个邮件发送请求消息进行处理,使得邮件服务器CPU负荷剧增,进而造成邮件服务器性能降低的问题。
因此,提供一种请求消息处理方法及装置,以在保证应用服务器性能的基础上,实现对请求消息的处理,是亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种请求消息处理方法及装置,以在保证应用服务器性能的基础上,实现对请求消息的处理。
为实现上述目的,本发明实施例提供如下技术方案:
一种请求消息处理方法,包括:
在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;
如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;
对所述当前目标非空闲节点中存储的请求消息进行处理;
如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;
返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤;
其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点,存储有请求消息的节点被确定为非空闲节点,未存储有请求消息的节点被确定为空闲节点。
一种请求消息处理装置,包括:
判断单元,用于在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;
当前目标非空闲节点确定单元,用于如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;
请求消息处理单元,用于对所述当前目标非空闲节点中存储的请求消息进行处理;
第一请求消息删除单元,用于如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;
返回执行单元,用于返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤;
其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点,存储有请求消息的节点被确定为非空闲节点,未存储有请求消息的节点被确定为空闲节点。
本申请实施例提供一种请求消息处理方法及装置,通过在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;对所述当前目标非空闲节点中存储的请求消息进行处理;如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤(其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点)的方式,实现了对请求消息的顺序处理,进而保证了应用服务器的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种请求消息处理方法流程图;
图2为本申请实施例提供的另一种请求消息处理方法流程图;
图3为本申请实施例提供的又一种请求消息处理方法流程图;
图4为本申请实施例提供的又一种请求消息处理方法流程图;
图5为本申请实施例提供的一种请求消息存储方法流程图;
图6为本申请实施例提供的另一种请求消息存储方法流程图;
图7为本申请实施例提供的又一种请求消息存储方法流程图;
图8为本申请实施例提供的一种请求消息处理装置的结构示意图;
图9为本申请实施例提供的一种请求消息存储单元的详细结构示意图;
图10为本申请实施例提供的一种请求消息处理装置的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
图1为本申请实施例提供的一种请求消息处理方法流程图。
如图1所示,该方法包括:
S101、满足预设的处理请求消息的触发条件;
可选的,满足预设的处理请求消息的触发条件,指示在满足预设的处理请求消息的触发条件的情况下。
本申请实施例提供的一种请求消息处理方法应用于应用服务器,应用服务器接收用户通过应用发送的请求消息,并对请求消息进行处理,具体的应用服务器处理请求消息的方式请参见本申请实施例中的步骤S101-S105的描述,在此不做赘述。
在本申请实施例中,优选的,应用服务器为邮件应用对应的邮件服务器、游戏应用对应的游戏服务器、即时通讯应用对应的即使通信服务器。以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置本申请实施例请求保护的技术方案的应用范围,即具体的应用及应用服务器,在此不做限定。
可选的,满足预设的处理请求消息的触发条件的情况,包括:系统时间满足预设的定时周期。
在本申请实施例中,优选的,系统时间满足预设的定时周期包括:系统时间位于预设的定时周期内。例如,若预设的定时周期包括第1-10ms,第20-30ms,以及第40-50ms,可认为第1-10ms为一个预设的定时周期,第20-30ms为一个预设的定时周期,以及第40-50ms为一个预设的定时周期。如果当前系统时间为第25ms时,则确定系统时间满足预设的定时周期,确定满足预设的处理请求消息的触发条件;如果当前系统时间为第15ms,则确定系统时间不满足预设的定时周期,不满足预设的处理请求消息的触发条件。
也就是说,第1-10ms对应一个满足预设的处理请求消息的触发条件的情况,第20-30ms对应一个满足预设的处理请求消息的触发条件的情况,以及第40-50ms对应一个满足预设的处理请求消息的触发条件的情况。以第1-10ms为例进行说明,在第1-10ms的定时周期内,执行如下过程:判断是否满足预设的处理非空闲节点的触发条件,如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;对所述当前目标非空闲节点中存储的请求消息进行处理;如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置“满足预设的处理请求消息的触发条件”的具体方式,在此不做限定。
S102、判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,执行步骤S103;
可选的,判断是否满足预设的处理非空闲节点的触发条件,包括:在一定时周期内,处理的非空闲节点的数量是否到达预设阈值;若到达所述预设阈值,确定不满足预设的处理非空闲节点的触发条件;若未到达所述预设阈值,确定满足预设的处理非空闲节点的触发条件。
例如,假设所述预设阈值为3。在定时周期20-30ms内,处理3个非空闲节点后,则认为在一定时周期内,处理的非空闲节点的数量到达预设阈值,不满足预设的处理非空闲节点的触发条件;在定时周期20-30ms内,处理1个/2个非空闲节点后,则认为在一定时周期内,处理的非空闲节点的数量未到达预设阈值,满足预设的处理非空闲节点的触发条件。
可选的,判断是否满足预设的处理非空闲节点的触发条件的方式为:在一定时周期内,处理的非空闲节点的数量是否到达预设阈值,以及,缓存队列中是否存在非空闲节点;如果在一定时周期内,处理的非空闲节点的数量未到达预设阈值,以及,缓存队列中存在非空闲节点,确定满足预设的处理非空闲节点的触发条件;如果在一定时周期内,处理的非空闲节点的数量到达预设阈值,或者,缓存队列中未存在非空闲节点,确定不满足预设的处理非空闲节点的触发条件。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置“判断是否满足预设的处理非空闲节点的触发条件”的具体方式,在此不做限定。
S103、从缓存队列中确定当前目标非空闲节点;
可选的,缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点,具体的,存储有请求消息的节点被确定为非空闲节点,未存储有请求消息的节点被确定为空闲节点。
需要说明的是:缓存队列中的节点包括第一索引信息和第二索引信息,所述第一索引信息用于唯一指示所述节点,所述第二索引信息用于指示所述节点的下一节点,所述缓存队列中的空闲节点中的第二索引信息指示的下一节点为一空闲节点;所述缓存队列中的非空闲节点中的第二索引信息指示的下一节点为一非空闲节点,所述缓存队列中的各节点中的第二索引信息指示的下一节点互不相同。
在本申请实施例中,优选的,缓存队列中的每一节点均包括第一索引信息和第二索引信息,第一索引信息用于唯一指示所述节点,第二索引信息用于指示所述节点指向的下一节点。
可选的,分别为缓存队列中的每一节点分配一个唯一的标识信息,所述节点的第一索引信息为所述节点的标识信息,所述节点的第二索引信息为所述节点的下一节点的标识信息。
为了保证对缓存队列中的非空闲节点的顺序处理,并节约处理时间,需保证缓存队列中的非空闲节点中的第二索引信息指示的下一节点为所述缓存队列中的一非空闲节点,保证缓存队列中的空闲节点中的第二索引信息指示的下一节点为所述缓存队列中的一空闲节点。并且,通过采用保证缓存队列中的各节点的第二索引信息指示的下一节点互不相同的方式,避免对缓存队列中的一非空闲节点的重复处理,以及利用缓存队列中的一空闲节点重复存储请求消息的情况。
需要注意的是:缓存队列中存在一空闲节点的第二索引信息为异常信息,所述一空闲节点的第二索引信息为异常信息,指示所述一空闲节点的下一节点并未位于缓存队列中;缓存队列中存在一非空闲节点的第二索引信息为异常信息,所述一非空闲节点的第二索引信息为异常信息,指示所述一非空闲节点的下一节点并未位于缓存队列中。相应的,上述实施例涉及到的“所述缓存队列中的各节点中的第二索引信息指示的下一节点互不相同”是基于缓存队列中排除“缓存队列中的第二索引信息为异常信息的节点”后所剩余的节点而提供的。
可选的,所述当前目标非空闲节点为第一首部标识指示的,位于所述缓存队列中的非空闲节点;或者,所述当前目标非空闲节点为上一请求消息被处理的目标非空闲节点中的第二索引信息指示的下一节点。
在本申请实施例中,优选的,如果满足所述处理非空闲节点的触发条件,从缓存队列中确定的当前目标非空闲节点为:第一首部标识指示的位于缓存队列中的非空闲节点;或者,如果满足所述处理非空闲节点的触发条件,从缓存队列中确定的当前目标非空闲节点为:所述当前目标非空闲节点为上一请求消息被处理的目标非空闲节点中的第二索引信息指示的下一节点。
可选的,设置有第一首部标识,所述第一首部标识随着对缓存队列中的非空闲节点的具体处理进行更新,以保证第一首部标识始终指示缓存队列中的第一个待处理的非空闲节点。所述第一个待处理的非空闲节点是指:在每一次满足预设的处理请求消息的触发条件的情况下,第一次在满足所述处理非空闲节点的触发条件时,从缓存队列中确定的当前目标非空闲节点。例如,在第1-10ms定时周期内,第一次从缓存队列中确定的当前目标非空闲节点;在第20-30ms定时周期内,第一次从缓存队列中确定的当前目标非空闲节点;在第40-50ms定时周期内,第一次从缓存队列中确定的当前目标非空闲节点。
可选的,在每一次满足预设的处理请求消息的触发条件的情况中,如果是第N(N为大于等于2的正整数)次确定满足所述处理非空闲节点的触发条件时,从缓存队列中确定的当前目标非空闲节点为上一请求消息被处理的目标非空闲节点中的第二索引信息指示的下一节点。
例如,在第20-30ms定时周期内,若是第2次确定满足所述处理非空闲节点的触发条件,则从缓存队列中确定当前目标非空闲节点A1;该当前目标非空闲节点A1为:在第20-30ms定时周期内,第1次确定满足所述处理非空闲节点的触发条件时,从缓存队列中确定的当前目标非空闲节点B1中的第二索引信息指示的下一节点。需要注意的是:在第20-30ms定时周期内,第1次确定满足所述处理非空闲节点的触发条件时,从缓存队列中确定的当前目标非空闲节点B1是第一首部标识指示的位于缓存队列中的非空闲节点。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点的具体方式,在此不做限定。
S104、对所述当前目标非空闲节点中存储的请求消息进行处理;
可选的,当请求消息为邮件发送请求消息,对所述当前目标非空闲节点中存储的邮件发送请求消息进行处理包括:对所述当前目标非空闲节点中存储的邮件发送请求消息进行处理,以完成相应的邮件发送过程。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置对所述当前目标非空闲节点中存储的请求消息进行处理的具体方式及应用,在此不做限定。
S105、如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;返回执行步骤S102;
可选的,如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除,以便所述当前目标非空闲节点被确定为一空闲节点。
可选的,如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除后,返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤,以便在满足预设的处理请求消息的触发条件的情况下,重复执行“判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;对所述当前目标非空闲节点中存储的请求消息进行处理;如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除”过程。
本申请实施例提供一种请求消息处理方法,通过在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;对所述当前目标非空闲节点中存储的请求消息进行处理;如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤(其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点)的方式,使得根据满足预设的处理请求消息的触发条件保证对请求消息的分散处理,根据预设的处理非空闲节点的触发条件以及缓存队列保证对请求消息平滑处理,进而达到了在保证应用服务器性能的基础上,实现对请求消息的处理的目的。
为了更加全面的对本申请实施例提供的一种请求消息处理方法进行阐述,现对本申请实施例提供的另一种请求消息处理方法进行详细介绍,请参见图2。
图2为本申请实施例提供的另一种请求消息处理方法流程图。
如图2所示,该方法包括:
S201、满足预设的处理请求消息的触发条件;
S202、判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,执行步骤S203;
S203、从缓存队列中确定当前目标非空闲节点;
可选的,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点,存储有请求消息的节点被确定为非空闲节点,未存储有请求消息的节点被确定为空闲节点。
S204、对所述当前目标非空闲节点中存储的请求消息进行处理;
S205、如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;
在本申请实施例中,优选的,步骤S201-S205的执行过程与上述实施例提供的步骤S101-S105的执行过程相同,有关步骤S201-S205的执行过程请参见上述对步骤S101-S105的执行过程的描述,在此不做赘述。
S206、更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点;返回执行步骤S102;
可选的,在每一次满足预设的处理请求消息的触发条件的情况中,每次执行完成一次步骤S205均需更新一次首部标识,以保证在下一次满足预设的处理消息的触发条件的情况时,第一首部标识能够正常指示第一个待处理的非空闲节点。
例如,当缓存队列中包括6个节点,分别为节点C1、节点C2、节点C3、节点C4、节点C5和节点C6,并且,节点C1、节点C2、节点C3、节点C4和节点C5均为非空闲节点,C6为空闲节点。
节点C2的第二索引信息指示的下一节点为节点C1,节点C1的第二索引信息指示的下一节点为节点C5,节点C5的第二索引信息指示的下一节点为节点C4,节点C4的第二索引信息指示的下一节点为节点C3,第一首部标识指示节点C2。
并且,若是判断是否满足预设的处理非空闲节点的触发条件的方式为:在一定时周期内,处理的非空闲节点的数量是否到达预设阈值(预设阈值为2),则说明在每次满足预设的处理请求消息的触发条件的情况下,最多处理2个非空闲节点中的请求消息。
那么,具体的,在第一次满足预设的处理请求消息的触发条件的请求下,如果对节点C2中存储的请求消息处理成功,将第一首部标识更新为指示节点C1;继续处理节点C1中的请求消息,如果对节点C1中存储的请求消息处理成功,将第一首部标识更新为指示节点C5;此时,在第一次满足预设的处理请求消息的触发条件的情况下【如,在一定时周期(1-10ms)内】,处理的非空闲节点的数量是否到达预设阈值2;不在继续处理;当确定进入下一次满足预设的处理请求消息的触发条件的情况下【如,在一定时周期(20-30ms)内】,从第一首部标识指示的节点C5开始处理,如果对节点C5中存储的请求消息处理成功,将第一首部标识更新为指示节点C4;继续处理节点C4中的请求消息,如果对节点C4中存储的请求消息处理成功,将第一首部标识更新为指示节点C3;此时,在第一次满足预设的处理请求消息的触发条件的情况下【如,在一定时周期(1-10ms)内】,处理的非空闲节点的数量是否到达预设阈值2;不在继续处理;当确定进入下一次满足预设的处理请求消息的触发条件的情况下【如,在一定时周期(40-50ms)内】,从第一首部标识指示的节点C3开始处理。
以上仅仅是本申请实施例的优选方式,“所述将所述当前目标非空闲节点中存储的请求消息删除”步骤之后,需执行的“更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点”步骤,只要在下一次执行“所述将所述当前目标非空闲节点中存储的请求消息删除”步骤之前实现即可,有关“更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点”步骤位于本申请实施例中的具体执行顺序,在此不做限定。
并且,以上也仅仅是本申请实施例提供的更新第一首部标识的优选方式,具体的,发明人可根据自己的需求任意设置更新第一首部标识的方式,在此不做限定。
例如,从“满足预设的处理请求消息的触发条件的情况1”切换到“不满足预设的处理请求消息的触发条件的情况2”后,更新一次第一首部标识,使得更新后的第一首部标识指示从“不满足预设的处理请求消息的触发条件的情况2”切换到“满足预设的处理请求消息的触发条件的情况3”后,所述“满足预设的处理请求消息的触发条件的情况3”下的第一个待处理的非空闲节点。
通过上述对本申请实施例提供的另一种请求消息处理方法的进一步介绍,使得本申请实施例提供的请求消息处理方法更加清晰、完整,便于本领域技术人员理解。
为了更加全面的对本申请实施例提供的一种请求消息处理方法进行阐述,现对本申请实施例提供的又一种请求消息处理方法进行详细介绍,请参见图3。
如图3所示,该方法包括:
S301、满足预设的处理请求消息的触发条件;
S302、判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,执行步骤S303;
S303、从缓存队列中确定当前目标非空闲节点;
S304、判断是否对所述当前目标非空闲节点中存储的请求消息处理成功;如果对所述当前目标非空闲节点中存储的请求消息处理成功,执行步骤S305;如果对所述当前目标非空闲节点中存储的请求消息处理失败,执行步骤S307;
S305、将所述当前目标非空闲节点中存储的请求消息删除;
S306、更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点;返回执行步骤S302;
在本申请实施例中,优选的,步骤S301-S306的执行过程与上述实施例提供的步骤S201-S206的执行过程相同,有关步骤S301-S306的执行过程请参见上述对步骤S201-S206的执行过程的描述,在此不做赘述。
S307、确定所述当前目标非空闲节点中存储的请求消息是否满足预设的删除条件;如果所述当前目标非空闲节点中存储的请求消息不满足所述删除条件,执行步骤S308;
可选的,对所述当前目标非空闲节点中存储的请求消息进行处理;如果对所述当前目标非空闲节点中存储的请求消息处理失败,执行步骤S307。
可选的,步骤S307中确定所述当前目标非空闲节点中存储的请求消息是否满足预设的删除条件,包括:确定所述当前目标非空闲节点中存储的请求消息当前被处理的第一系统时间,与所述当前目标非空闲节点中存储的请求消息第一次被处理的第二系统时间之间的时间差是否满足预设时间差阈值;若满足,确定所述当前目标非空闲节点中存储的请求消息满足预设的删除条件;若不满足,确定所述当前目标非空闲节点中存储的请求消息不满足预设的删除条件。
可选的,预设时间差阈值为1s,以上仅仅是本申请实施例提供的预设时间差阈值的优选方式,在此不做限定。
S308、保留所述当前目标非空闲节点中存储的请求消息,返回执行步骤S302。
可选的,如果所述当前目标非空闲节点中存储的请求消息不满足所述删除条件,保留所述当前目标非空闲节点中存储的请求消息,并返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤。
需要注意的是:因如果所述当前目标非空闲节点中存储的请求消息不满足所述删除条件,虽然保留了所述当前目标非空闲节点中存储的请求消息,并返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤,但是并未对第一首部进行更新,因此,当下一次在满足预设的处理请求消息的触发条件的情况下,第一个待处理的非空闲节点为:按照时间先后顺序,在缓存队列中第一个存储的请求消息未被处理成功的非空闲节点。
进一步的,如图3所示的又一种请求消息处理方法,还包括:
步骤S309、如果所述当前目标非空闲节点中存储的请求消息满足所述删除条件,删除所述当前目标非空闲节点中存储的请求消息,返回执行步骤S302。
可选的,如果所述当前目标非空闲节点中存储的请求消息满足所述删除条件时,删除所述当前目标非空闲节点中存储的请求消息,使得所述当前目标非空闲节点被确定为一空闲节点,并返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤。
进一步的,如图3所示的又一种请求消息处理方法,在所述删除所述当前目标非空闲节点中存储的请求消息之后,该方法还可以包括:更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点。
可选的,在所述删除所述当前目标非空闲节点中存储的请求消息之后,需更新所述第一首部标识,使得更新后的第一首部标识指示所述当前目标非空闲节点中的第二索引信息指示的下一节点,以使得第一首部标识根据对缓存队列中各非空闲节点的处理进行更新,保证在下一次在满足预设的处理请求消息的触发条件的情况中,由第一首部标识正确指示第一个待处理的非空闲节点。
通过上述对本申请实施例提供的又一种请求消息处理方法的进一步介绍,使得本申请实施例提供的请求消息处理方法更加清晰、完整,便于本领域技术人员理解。
为了更加全面的对本申请实施例提供的一种请求消息处理方法进行阐述,现对本申请实施例提供的又一种请求消息处理方法进行详细介绍,请参见图4。
如图4所示,该方法包括:
S401、满足预设的处理请求消息的触发条件;
S402、判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,执行步骤S403;
S403、从缓存队列中确定当前目标非空闲节点;
S404、判断是否对所述当前目标非空闲节点中存储的请求消息处理成功;如果对所述当前目标非空闲节点中存储的请求消息处理成功,执行步骤S405;
S405、将所述当前目标非空闲节点中存储的请求消息删除;
可选的,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点,存储有请求消息的节点被确定为非空闲节点,未存储有请求消息的节点被确定为空闲节点;所述节点包括第一索引信息和第二索引信息,所述第一索引信息用于唯一指示所述节点,所述第二索引信息用于指示所述节点的下一节点,所述缓存队列中的空闲节点中的第二索引信息指示的下一节点为一空闲节点;所述缓存队列中的非空闲节点中的第二索引信息指示的下一节点为一非空闲节点,所述缓存队列中的各节点中的第二索引信息指示的下一节点互不相同。
在本申请实施例中,优选的,步骤S401-S405的执行过程与上述实施例提供的步骤S101-S105的执行过程相同,有关步骤S401-S405的执行过程请参见上述对步骤S101-S105的执行过程的描述,在此不做赘述。
S406、从所述缓存队列的各空闲节点中确定待修改空闲节点,所述待修改空闲节点中的第二索引信息为异常信息;
S407、对所述待修改空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标非空闲节点;
S408、对所述当前目标非空闲节点的第二索引信息进行修改,修改后的所述第二索引信息为异常信息;返回执行步骤S402;
可选的,缓存队列中的当前目标非空闲节点中的请求消息被删除后,所述当前目标非空闲节点被确定为一空闲节点,此时通过步骤S406-S408对缓存队列中的各节点之间的指向关系进行更改。
在本申请实施例中,优选的,节点中的第二索引信息为异常信息指示:所述节点中的第二索引信息指示的下一节点未位于缓存队列中,所述节点未指向缓存队列中的下一节点,所述节点位于相应队列的队尾。例如,如果非空闲节点D1的第二索引信息指示的下一节点为非空闲节点D3,非空闲节点D3的第二索引信息指示的下一节点为非空闲节点D5,非空闲节点D5的第二索引信息为异常信息,说明非空闲节点D1、非空闲节点D3和非空闲节点D5可抽象构成依次排列的队列,其中非空闲节点D5为所述队列的队尾。
可选的,缓存队列中的当前目标非空闲节点中的请求消息被删除后,所述当前目标非空闲节点被确定为一空闲节点;在所述将所述当前目标非空闲节点中存储的请求消息删除之后,在所述返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤之前,需从所述缓存队列的各空闲节点中确定待修改空闲节点,所述待修改空闲节点中的第二索引信息为异常信息;对所述待修改空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标非空闲节点(所述当前目标非空闲节点中存储的请求消息已被删除);并对所述当前目标非空闲节点(所述当前目标非空闲节点中存储的请求消息已被删除)的第二索引信息进行修改,修改后的所述第二索引信息为异常信息。
具体的,上述过程可认为是“根据节点中的第二索引信息,缓存队列中各个非空闲节点可抽象构成一队列,当前目标非空闲节点中的请求消息被删除后,所述当前目标非空闲节点被确定为一空闲节点,将被确定的所述一空闲节点添加到缓存队列中的各个非空闲节点抽象构成的队列的队尾”的过程。
通过上述对本申请实施例提供的又一种请求消息处理方法的进一步介绍,使得本申请实施例提供的请求消息处理方法更加清晰、完整,便于本领域技术人员理解。
进一步的,在本申请实施例提供的一种请求消息处理方法中,还包括:
S501、接收请求消息;
S502、从所述缓存队列中确定当前目标空闲节点;
S503、将所述请求消息存储于所述当前目标空闲节点。
可选的,本申请实施例提供的步骤S501-S503的执行过程可认为是在缓存队列的非空闲节点中存储请求消息的过程,则将步骤S501-S503在图5中展示,并确定图5为本申请实施例提供的一种请求消息存储方法流程图。
在本申请实施例中,优选的,接收请求消息;从所述缓存队列中确定的当前目标空闲节点为第二首部标识指示的,位于所述缓存队列中的空闲节点;或者,所述当前目标空闲节点为上一存储请求消息的目标空闲节点中的第二索引信息指示的下一节点。
在本申请实施例中,优选的,接收请求消息,从所述缓存队列中确定的当前目标空闲节点为:第二首部标识指示的,位于所述缓存队列中的空闲节点;或者,接收请求消息,从所述缓存队列中确定的当前目标空闲节点为:所述当前目标空闲节点为上一存储请求消息的目标空闲节点中的第二索引信息指示的下一节点。
可选的,设置有第二首部标识,所述第二首部标识随着对缓存队列中的空闲节点的存储请求消息的具体情况进行更新,以保证第二首部标识始终指示缓存队列中的第一个用于存储请求消息的空闲节点。所述第一个用于存储请求消息的空闲节点是指:在接收到请求消息后,缓存队列中的第一个用于存储所述请求消息的空闲节点。
可选的,在同时接收到多个请求消息的情况下,通过第二首部标识从缓存队列中确定当前目标空闲节点(即,缓存队列中第一个用于存储请求消息的空闲节点),通过所述当前目标空闲节点对接收到的一请求消息进行存储后;针对下一请求消息的存储,需确定所述当前目标空闲节点的第二索引信息指示的下一节点,将所确定的下一节点重新确定为当前目标空闲节点,并通过所重新确定的当前目标空闲节点存储所述下一请求消息;依此类推,直到将同时接收到的多个请求消息存储完毕。
以上以仅仅是本申请实施例提供的从所述缓存队列中确定当前目标空闲节点的优选方式,发明人可根据自己的需求任意设置从所述缓存队列中确定当前目标空闲节点的具体方式,在此不做限定。
通过上述对本申请实施例提供的一种请求消息存储方法的进一步介绍,使得本申请实施例提供的请求消息处理方法更加清晰、完整,便于本领域技术人员理解。
图6为本申请实施例提供的另一种请求消息存储方法流程图。
如图6所示,该方法包括:
S601、接收请求消息;
S602、从所述缓存队列中确定当前目标空闲节点;
S603、将所述请求消息存储于所述当前目标空闲节点;
在本申请实施例中,优选的,步骤S601-S603的执行过程与上述实施例提供的步骤S501-S503的执行过程相同,有关步骤S601-S603的执行过程请参见上述对步骤S501-S503的执行过程的描述,在此不做赘述。
S604、更新所述第二首部标识以指示所述当前目标空闲节点的第二索引信息指示的下一节点。
在本申请实施例中,优选的,将所述请求消息存储于所述当前目标空闲节点后,便更新所述第二首部标识,更新后的第二首部标识指示所述当前目标空闲节点第二索引信息指示的下一节点。通过将第二首部标识与当前目标空闲节点存储请求消息的情况进行同步更新,可保证当在缓存队列中对同时接收到的多个请求消息存储完成后,若在接收到请求消息,可通过第二首部标识直接确定当前目标空闲节点,以通过确定的所述当前目标空闲节点存储接收到的所述请求消息。
通过上述对本申请实施例提供的另一种请求消息存储方法的进一步介绍,使得本申请实施例提供的请求消息处理方法更加清晰、完整,便于本领域技术人员理解。
图7为本申请实施例提供的又一种请求消息存储方法流程图。
如图7所示,该方法包括:
S701、接收请求消息;
S702、从所述缓存队列中确定当前目标空闲节点;
S703、将所述请求消息存储于所述当前目标空闲节点;
S704、更新所述第二首部标识以指示所述当前目标空闲节点的第二索引信息指示的下一节点;
在本申请实施例中,优选的,步骤S701-S704的执行过程与上述实施例提供的步骤S601-S604的执行过程相同,有关步骤S701-S704的执行过程请参见上述对步骤S601-S604的执行过程的描述,在此不做赘述。
S705、从所述缓存队列的各非空闲节点中确定待修改非空闲节点,所述待修改非空闲节点中的第二索引信息为异常信息;
S706、对所述待修改非空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标空闲节点;
S707、对所述当前目标空闲节点的第二索引信息进行修改,修改后的所述第二索引信息为异常信息。
可选的,缓存队列中的当前目标空节点存储请求消息后,所述当前目标空节点被确定为一非空闲节点,此时通过步骤S705-S707对缓存队列中的各节点之间的指向关系进行更改。
在本申请实施例中,优选的,节点中的第二索引信息为异常信息指示:所述节点中的第二索引信息指示的下一节点未位于缓存队列中,所述节点未指向缓存队列中的下一节点,所述节点位于相应队列的队尾。例如,如果空闲节点E1的第二索引信息指示的下一节点为空闲节点E3,空闲节点E3的第二索引信息指示的下一节点为空闲节点E5,空闲节点E5的第二索引信息为异常信息,说明空闲节点E1、空闲节点E3和空闲节点E5可抽象构成依次排列的队列,其中空闲节点E5为所述队列的队尾。
可选的,缓存队列中的当前目标空闲节点存储请求消息后,所述当前目标空闲节点被确定为一非空闲节点;将所述请求消息存储于所述当前目标空闲节点之后,需从所述缓存队列的各非空闲节点中确定待修改非空闲节点,所述待修改非空闲节点中的第二索引信息为异常信息;对所述待修改非空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标空闲节点(已存储有请求消息的当前目标空闲节点);对所述当前目标空闲节点(已存储有请求消息的当前目标空闲节点)的第二索引信息进行修改,修改后的所述第二索引信息为异常信息。
具体的,上述过程可认为是“根据节点中的第二索引信息,缓存队列中各个非空闲节点可抽象构成一队列,当前目标空闲节点中存储请求消息后,所述当前目标空闲节点被确定为一非空闲节点,将被确定的所述一非空闲节点添加到缓存队列中的各个非空闲节点抽象构成的队列的队尾”的过程。
通过上述对本申请实施例提供的另一种请求消息存储方法的进一步介绍,使得本申请实施例提供的请求消息处理方法更加清晰、完整,便于本领域技术人员理解。
为了便于对本申请实施例提供的一种请求消息处理方法的理解,现对本申请实施例提供的一种消息请求处理方法的具体应用场景进行说明。
在本申请实施例中,优选的,预设设置初始的缓存队列,所述缓存队列中包括至少一个节点,初始的缓存队列中的每个节点均未存储请求消息,即初始缓存队列中的每个节点均为空闲节点,初始的缓存队列中的每个节点具有唯一标识信息。
并且,每个节点中包括第一索引信息和第二索引信息,所述第一索引信息用于唯一指示所述节点,所述第二索引信息用于指示所述节点的下一节点;每一所述节点第一索引信息是所述节点本身的唯一的标识信息,第二索引信息为所述节点的下一节点本身的唯一的标识信息。
在本申请实施例中,优选的,初始的缓存队列中的各个节点根据第二索引信息抽象成的队列中节点的排列顺序,与初始的缓存队列中的各个节点的排列顺序相同。例如,假设初始的缓存队列为节点F1、节点F2、节点F3和节点F4,设置节点F1的第二索引指示的下一节点为节点F2,节点F2的第二索引指示的下一节点为节点F3,节点F3的第二索引指示的下一节点为节点F4。并且,需要注意的是:此时,初始的缓存队列中的节点F1、节点F2、节点F3和节点F4均为空闲节点,第一首部标识指示所述缓存队列中不存在非空闲节点;第二首部标识指示节点F1,节点F4的第二索引信息为异常信息。
当接收到请求消息1时,将所述请求消息存储到节点F1中,修改节点F1的第二索引信息为异常信息,更新第一首部标识指示节点F1,更新第二首部标识指示F2;
当接收到请求消息2时,将所述请求消息存储到节点F2中,并修改节点F1的第二索引信息指示节点F2,修改节点F2的第二索引信息为异常信息,更新第二首部标识指示节点F3;
接着,若确定出满足预设的处理请求消息的触发条件,执行如下过程:
判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点F1(此当前目标非空闲节点依据第一首部标识确定),对当前目标非空闲节点F1中的请求消息进行处理;
如果对所述当前目标非空闲节点中存储的请求消息处理成功,将当前目标非空闲节点F1中的请求消息删除,并修改节点F4的第二索引信息指示节点F1,修改节点F1的索引信息为异常信息,更新第一首部标识指示节点F2;若满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点F2,对当前目标非空闲节点F2中的请求消息进行处理;如果对所述当前目标非空闲节点中存储的请求消息处理失败;如果所述当前目标非空闲节点F2中存储的请求消息不满足所述删除条件,保留当前目标非空闲节点F1中的请求消息,并不更新第一首部标识。
此时,若同时接收到多个请求消息,以节点F3、节点F4和节点F1的顺序对接收到的请求消息进行存储。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。
图8为本申请实施例提供的一种请求消息处理装置的结构示意图。
如图8所示,该装置包括:
判断单元81,用于在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;
当前目标非空闲节点确定单元82,用于如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;
请求消息处理单元83,用于对所述当前目标非空闲节点中存储的请求消息进行处理;
第一请求消息删除单元84,用于如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;
返回执行单元85,用于返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤;
其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点,存储有请求消息的节点被确定为非空闲节点,未存储有请求消息的节点被确定为空闲节点。
可选的,所述节点包括第一索引信息和第二索引信息,所述第一索引信息用于唯一指示所述节点,所述第二索引信息用于指示所述节点的下一节点,所述缓存队列中的空闲节点中的第二索引信息指示的下一节点为一空闲节点;所述缓存队列中的非空闲节点中的第二索引信息指示的下一节点为一非空闲节点,所述缓存队列中的各节点中的第二索引信息指示的下一节点互不相同;
在本申请实施例中,优选的,所述当前目标非空闲节点为第一首部标识指示的,位于所述缓存队列中的非空闲节点;或者,所述当前目标非空闲节点为上一请求消息被处理的目标非空闲节点中的第二索引信息指示的下一节点。
进一步的,本申请实施例提供的一种请求消息处理装置还包括:
第一更新单元,用于在所述将所述当前目标非空闲节点中存储的请求消息删除之后,更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点。
进一步的,本申请实施例提供的一种请求消息处理装置还包括:
确定单元,用于如果对所述当前目标非空闲节点中存储的请求消息处理失败,确定所述当前目标非空闲节点中存储的请求消息是否满足预设的删除条件;
保留单元,用于如果所述当前目标非空闲节点中存储的请求消息不满足所述删除条件,保留所述当前目标非空闲节点中存储的请求消息,并返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤。
进一步的,本申请实施例提供的一种请求消息处理装置还包括:
第二请求消息删除单元,用于如果所述当前目标非空闲节点中存储的请求消息满足所述删除条件,删除所述当前目标非空闲节点中存储的请求消息,并返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤。
进一步的,本申请实施例提供的一种请求消息处理装置还包括:
第二更新单元,用于在所述删除所述当前目标非空闲节点中存储的请求消息之后,更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点。
进一步的,本申请实施例提供的一种请求消息处理装置还包括:
第一修改单元,用于在所述将所述当前目标非空闲节点中存储的请求消息删除之后,在所述返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤之前,从所述缓存队列的各空闲节点中确定待修改空闲节点,所述待修改空闲节点中的第二索引信息为异常信息;对所述待修改空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标非空闲节点;对所述当前目标非空闲节点的第二索引信息进行修改,修改后的所述第二索引信息为异常信息。
进一步的,本申请实施例提供的一种请求消息处理装置还包括:请求消息存储单元。如图9所示为本申请实施例提供的一种请求消息存储单元的详细结构示意图。
如图9所示,所述请求消息存储单元,包括:
请求消息接收单元91,用于接收请求消息;
当前目标空闲节点确定单元92,用于从所述缓存队列中确定当前目标空闲节点;
请求消息存储子单元93,用于将所述请求消息存储于所述当前目标空闲节点。
在本申请实施例中,优选的,所述当前目标空闲节点为第二首部标识指示的,位于所述缓存队列中的空闲节点;或者,所述当前目标空闲节点为上一存储请求消息的目标空闲节点中的第二索引信息指示的下一节点。
进一步的,本申请实施例提供的一种请求消息处理装置还包括:
第三更新单元,用于在所述将所述请求消息存储于所述当前目标空闲节点之后,更新所述第二首部标识以指示所述当前目标空闲节点的第二索引信息指示的下一节点。
进一步的,本申请实施例提供的一种请求消息处理装置还包括:
第二修改单元,用于所述将所述请求消息存储于所述当前目标空闲节点之后,从所述缓存队列的各非空闲节点中确定待修改非空闲节点,所述待修改非空闲节点中的第二索引信息为异常信息;对所述待修改非空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标空闲节点;对所述当前目标空闲节点的第二索引信息进行修改,修改后的所述第二索引信息为异常信息。
可选的,请求消息处理装置可以为硬件设备,上文描述的模块、单元可以为设置于请求消息处理装置内的功能模块。图10示出了请求消息处理装置的硬件结构框图,参照图10,请求消息处理装置可以包括:处理器101,通信接口102,存储器103和通信总线104;其中处理器101、通信接口102、存储器103通过通信总线104完成相互间的通信;可选的,通信接口102可以为通信模块的接口,如GSM模块的接口;
处理器101,用于执行程序;存储器103,用于存放程序;程序可以包括程序代码,程序代码包括计算机操作指令;
处理器101可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路;存储器103可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,程序可具体用于:
在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;
如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;
对所述当前目标非空闲节点中存储的请求消息进行处理;
如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;
返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤;
其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点,存储有请求消息的节点被确定为非空闲节点,未存储有请求消息的节点被确定为空闲节点。
本申请实施例提供一种请求消息处理装置,通过在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;对所述当前目标非空闲节点中存储的请求消息进行处理;如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤(其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点)的方式,实现了对请求消息的顺序处理,进而保证了应用服务器的性能。
综上:
本申请实施例提供一种请求消息处理方法及装置,通过在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;对所述当前目标非空闲节点中存储的请求消息进行处理;如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤(其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点)的方式,实现了对请求消息的顺序处理,进而保证了应用服务器的性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (22)

1.一种请求消息处理方法,其特征在于,包括:
在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;
如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;
对所述当前目标非空闲节点中存储的请求消息进行处理;
如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;
返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤;
其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点,存储有请求消息的节点被确定为非空闲节点,未存储有请求消息的节点被确定为空闲节点。
2.根据权利要求1所述的方法,其特征在于,所述节点包括第一索引信息和第二索引信息,所述第一索引信息用于唯一指示所述节点,所述第二索引信息用于指示所述节点的下一节点,所述缓存队列中的空闲节点中的第二索引信息指示的下一节点为一空闲节点;所述缓存队列中的非空闲节点中的第二索引信息指示的下一节点为一非空闲节点,所述缓存队列中的各节点中的第二索引信息指示的下一节点互不相同;
所述当前目标非空闲节点为第一首部标识指示的,位于所述缓存队列中的非空闲节点;
或者,
所述当前目标非空闲节点为上一请求消息被处理的目标非空闲节点中的第二索引信息指示的下一节点。
3.根据权利要求2所述的方法,其特征在于,在所述将所述当前目标非空闲节点中存储的请求消息删除之后,该方法还包括:
更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点。
4.根据权利要求1-3任意一项所述的方法,其特征在于,还包括:
如果对所述当前目标非空闲节点中存储的请求消息处理失败,确定所述当前目标非空闲节点中存储的请求消息是否满足预设的删除条件;
如果所述当前目标非空闲节点中存储的请求消息不满足所述删除条件,保留所述当前目标非空闲节点中存储的请求消息,并返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤。
5.根据权利要求4所述的方法,其特征在于,还包括:
如果所述当前目标非空闲节点中存储的请求消息满足所述删除条件,删除所述当前目标非空闲节点中存储的请求消息,并返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤。
6.根据权利要求5所述的方法,其特征在于,在所述删除所述当前目标非空闲节点中存储的请求消息之后,该方法还包括:
更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点。
7.根据权利要求6所述的方法,其特征在于,在所述将所述当前目标非空闲节点中存储的请求消息删除之后,在所述返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤之前,该方法还包括:
从所述缓存队列的各空闲节点中确定待修改空闲节点,所述待修改空闲节点中的第二索引信息为异常信息;
对所述待修改空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标非空闲节点;
对所述当前目标非空闲节点的第二索引信息进行修改,修改后的所述第二索引信息为异常信息。
8.根据权利要求7所述的方法,其特征在于,还包括:
接收请求消息;
从所述缓存队列中确定当前目标空闲节点;
将所述请求消息存储于所述当前目标空闲节点。
9.根据权利要求8所述的方法,其特征在于,
所述当前目标空闲节点为第二首部标识指示的,位于所述缓存队列中的空闲节点;
或者,
所述当前目标空闲节点为上一存储请求消息的目标空闲节点中的第二索引信息指示的下一节点。
10.根据权利要求9所述的方法,其特征在于,在所述将所述请求消息存储于所述当前目标空闲节点之后,该方法还包括:
更新所述第二首部标识以指示所述当前目标空闲节点的第二索引信息指示的下一节点。
11.根据权利要求10所述的方法,其特征在于,所述将所述请求消息存储于所述当前目标空闲节点之后,该方法还包括:
从所述缓存队列的各非空闲节点中确定待修改非空闲节点,所述待修改非空闲节点中的第二索引信息为异常信息;
对所述待修改非空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标空闲节点;
对所述当前目标空闲节点的第二索引信息进行修改,修改后的所述第二索引信息为异常信息。
12.一种请求消息处理装置,其特征在于,包括:
判断单元,用于在满足预设的处理请求消息的触发条件的情况下,判断是否满足预设的处理非空闲节点的触发条件;
当前目标非空闲节点确定单元,用于如果满足所述处理非空闲节点的触发条件,从缓存队列中确定当前目标非空闲节点;
请求消息处理单元,用于对所述当前目标非空闲节点中存储的请求消息进行处理;
第一请求消息删除单元,用于如果对所述当前目标非空闲节点中存储的请求消息处理成功,将所述当前目标非空闲节点中存储的请求消息删除;
返回执行单元,用于返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤;
其中,所述缓存队列包括至少一个节点,每一所述节点依据是否存储有请求消息而被确定为非空闲节点或空闲节点,存储有请求消息的节点被确定为非空闲节点,未存储有请求消息的节点被确定为空闲节点。
13.根据权利要求12所述的装置,其特征在于,所述节点包括第一索引信息和第二索引信息,所述第一索引信息用于唯一指示所述节点,所述第二索引信息用于指示所述节点的下一节点,所述缓存队列中的空闲节点中的第二索引信息指示的下一节点为一空闲节点;所述缓存队列中的非空闲节点中的第二索引信息指示的下一节点为一非空闲节点,所述缓存队列中的各节点中的第二索引信息指示的下一节点互不相同;
所述当前目标非空闲节点为第一首部标识指示的,位于所述缓存队列中的非空闲节点;
或者,
所述当前目标非空闲节点为上一请求消息被处理的目标非空闲节点中的第二索引信息指示的下一节点。
14.根据权利要求13所述的装置,其特征在于,还包括:
第一更新单元,用于在所述将所述当前目标非空闲节点中存储的请求消息删除之后,更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点。
15.根据权利要求12-14任意一项所述的装置,其特征在于,还包括:
确定单元,用于如果对所述当前目标非空闲节点中存储的请求消息处理失败,确定所述当前目标非空闲节点中存储的请求消息是否满足预设的删除条件;
保留单元,用于如果所述当前目标非空闲节点中存储的请求消息不满足所述删除条件,保留所述当前目标非空闲节点中存储的请求消息,并返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤。
16.根据权利要求15所述的装置,其特征在于,还包括:
第二请求消息删除单元,用于如果所述当前目标非空闲节点中存储的请求消息满足所述删除条件,删除所述当前目标非空闲节点中存储的请求消息,并返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤。
17.根据权利要求16所述的装置,其特征在于,还包括:
第二更新单元,用于在所述删除所述当前目标非空闲节点中存储的请求消息之后,更新所述第一首部标识以指示所述当前目标非空闲节点中的第二索引信息指示的下一节点。
18.根据权利要求17所述的装置,其特征在于,还包括:
第一修改单元,用于在所述将所述当前目标非空闲节点中存储的请求消息删除之后,在所述返回执行判断是否满足预设的处理非空闲节点的触发条件的步骤之前,从所述缓存队列的各空闲节点中确定待修改空闲节点,所述待修改空闲节点中的第二索引信息为异常信息;对所述待修改空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标非空闲节点;对所述当前目标非空闲节点的第二索引信息进行修改,修改后的所述第二索引信息为异常信息。
19.根据权利要求18所述的装置,其特征在于,还包括请求消息存储单元,所述请求消息存储单元,包括:
请求消息接收单元,用于接收请求消息;
当前目标空闲节点确定单元,用于从所述缓存队列中确定当前目标空闲节点;
请求消息存储子单元,用于将所述请求消息存储于所述当前目标空闲节点。
20.根据权利要求19所述的装置,其特征在于,
所述当前目标空闲节点为第二首部标识指示的,位于所述缓存队列中的空闲节点;
或者,
所述当前目标空闲节点为上一存储请求消息的目标空闲节点中的第二索引信息指示的下一节点。
21.根据权利要求20所述的装置,其特征在于,还包括:
第三更新单元,用于在所述将所述请求消息存储于所述当前目标空闲节点之后,更新所述第二首部标识以指示所述当前目标空闲节点的第二索引信息指示的下一节点。
22.根据权利要求21所述的装置,其特征在于,还包括:
第二修改单元,用于所述将所述请求消息存储于所述当前目标空闲节点之后,从所述缓存队列的各非空闲节点中确定待修改非空闲节点,所述待修改非空闲节点中的第二索引信息为异常信息;对所述待修改非空闲节点中的第二索引信息进行修改,修改后的所述第二索引信息指示的下一节点为所述当前目标空闲节点;对所述当前目标空闲节点的第二索引信息进行修改,修改后的所述第二索引信息为异常信息。
CN201710048374.4A 2017-01-20 2017-01-20 一种请求消息处理方法及装置 Active CN106603723B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710048374.4A CN106603723B (zh) 2017-01-20 2017-01-20 一种请求消息处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710048374.4A CN106603723B (zh) 2017-01-20 2017-01-20 一种请求消息处理方法及装置

Publications (2)

Publication Number Publication Date
CN106603723A true CN106603723A (zh) 2017-04-26
CN106603723B CN106603723B (zh) 2019-08-30

Family

ID=58586429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710048374.4A Active CN106603723B (zh) 2017-01-20 2017-01-20 一种请求消息处理方法及装置

Country Status (1)

Country Link
CN (1) CN106603723B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108681485A (zh) * 2018-04-27 2018-10-19 佛山市日日圣科技有限公司 一种接收信息的处理方法及处理装置
CN111435938A (zh) * 2019-01-14 2020-07-21 阿里巴巴集团控股有限公司 一种数据请求的处理方法、装置及其设备
CN112054923A (zh) * 2020-08-24 2020-12-08 腾讯科技(深圳)有限公司 业务请求检测方法、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466311A (zh) * 2002-06-10 2004-01-07 华为技术有限公司 基于客户、服务器模式的用户请求报文的发送方法
CN101562567A (zh) * 2009-05-21 2009-10-21 杭州华三通信技术有限公司 一种处理报文的方法和服务器
CN102215177A (zh) * 2011-05-31 2011-10-12 广州华多网络科技有限公司 一种即时通讯软件的系统消息的处理方法与装置
CN102523224A (zh) * 2011-12-21 2012-06-27 余姚市供电局 一种arp流量控制方法和系统
CN102902593A (zh) * 2012-09-28 2013-01-30 方正国际软件有限公司 基于缓存机制的协议分发处理系统
US20150131428A1 (en) * 2013-11-12 2015-05-14 Electronics And Telecommunications Research Institute Method and apparatus for recovering error in rdm protocol

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466311A (zh) * 2002-06-10 2004-01-07 华为技术有限公司 基于客户、服务器模式的用户请求报文的发送方法
CN101562567A (zh) * 2009-05-21 2009-10-21 杭州华三通信技术有限公司 一种处理报文的方法和服务器
CN102215177A (zh) * 2011-05-31 2011-10-12 广州华多网络科技有限公司 一种即时通讯软件的系统消息的处理方法与装置
CN102523224A (zh) * 2011-12-21 2012-06-27 余姚市供电局 一种arp流量控制方法和系统
CN102902593A (zh) * 2012-09-28 2013-01-30 方正国际软件有限公司 基于缓存机制的协议分发处理系统
US20150131428A1 (en) * 2013-11-12 2015-05-14 Electronics And Telecommunications Research Institute Method and apparatus for recovering error in rdm protocol

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108681485A (zh) * 2018-04-27 2018-10-19 佛山市日日圣科技有限公司 一种接收信息的处理方法及处理装置
CN111435938A (zh) * 2019-01-14 2020-07-21 阿里巴巴集团控股有限公司 一种数据请求的处理方法、装置及其设备
CN111435938B (zh) * 2019-01-14 2022-11-29 阿里巴巴集团控股有限公司 一种数据请求的处理方法、装置及其设备
CN112054923A (zh) * 2020-08-24 2020-12-08 腾讯科技(深圳)有限公司 业务请求检测方法、设备及介质
CN112054923B (zh) * 2020-08-24 2023-08-18 腾讯科技(深圳)有限公司 业务请求检测方法、设备及介质

Also Published As

Publication number Publication date
CN106603723B (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
CN111555963B (zh) 消息推送方法、装置、电子设备及存储介质
CN106603723B (zh) 一种请求消息处理方法及装置
CN113485822A (zh) 内存管理方法、系统、客户端、服务器及存储介质
CN113515531B (zh) 数据访问方法、装置、客户端及存储介质
CN111212391B (zh) 短信推送方法、装置、设备及可读介质
US11734077B2 (en) Evaluation device, evaluation method and evaluation program
CN110659151A (zh) 数据校验方法及装置,存储介质
EP4407957A1 (en) Data processing method and apparatus, computer device and readable storage medium
JP5395517B2 (ja) 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
CN108304272B (zh) 一种数据io请求的处理方法及装置
CN112702259A (zh) 延迟消息推送方法、装置及消息中间件
CN112579515B (zh) 线程消息处理方法及相关产品
CN112328701B (zh) 数据同步方法、终端设备及计算机可读存储介质
CN113157465A (zh) 基于指针链表的消息发送方法及装置
US10469388B2 (en) Flow entry delivering method, flow entry storage method, related apparatus, and related system
CN104123942A (zh) 一种语音识别方法及系统
CN111274047A (zh) 信息处理方法、终端、系统、计算机设备和存储介质
US7414991B2 (en) Computing system and method to select data packet
CN109739667A (zh) 一种消息的消费方法、装置及设备
CN108121580B (zh) 应用程序通知服务的实现方法及装置
CN110139320B (zh) 多卡通讯终端的业务冲突处理方法、装置、介质及终端
CN110266814B (zh) 传输方法及传输装置
CN108781170A (zh) 一种配置装置及方法
CN111274209A (zh) 话单文件处理方法及装置
CN111475512A (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