CN108200134A - 请求消息管理方法及装置、存储介质 - Google Patents

请求消息管理方法及装置、存储介质 Download PDF

Info

Publication number
CN108200134A
CN108200134A CN201711425268.XA CN201711425268A CN108200134A CN 108200134 A CN108200134 A CN 108200134A CN 201711425268 A CN201711425268 A CN 201711425268A CN 108200134 A CN108200134 A CN 108200134A
Authority
CN
China
Prior art keywords
request message
queue
priority
buffer queue
scheduling
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
CN201711425268.XA
Other languages
English (en)
Other versions
CN108200134B (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
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing 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, Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201711425268.XA priority Critical patent/CN108200134B/zh
Publication of CN108200134A publication Critical patent/CN108200134A/zh
Priority to PCT/CN2018/116249 priority patent/WO2019128535A1/zh
Priority to US16/869,400 priority patent/US10891177B2/en
Application granted granted Critical
Publication of CN108200134B publication Critical patent/CN108200134B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • 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/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • 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
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种请求消息管理方法,包括:建立缓存队列,数量至少为两个;根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;将所述统一缓存队列中的请求消息调度到对应的调度队列中;通过与所述调度队列对应的发送通道向终端发送所述请求消息。本发明还提供了一种请求消息管理装置和存储介质。

Description

请求消息管理方法及装置、存储介质
技术领域
本发明涉及通信技术,尤其涉及一种请求消息管理方法及装置、存储介质。
背景技术
大量复杂信息传送的条件下,其主要面临以下两个方面的问题:
1)大量消息条件下阻塞现象严重。如果有大量请求到来并且大于服务器缓存区大小,请求被拒绝,消息丢失。传统的处理策略是,尽可能地保证所有消息的公平达到,即便有消息损失,也尽量保证公平。这就导致了有限的缓存资源没有被真正紧急的消息利用,重要的消息不能送达。
2)紧急消息时延较高。实际中,推送系统发送的消息根据重要程度有相应不同的截止期(例如地震,恶劣天气,股市动态等消息的截止期要明显短于游戏应用,娱乐资讯的截止期),而现有技术中的调度策略由于强调所有消息流之间的公平,使得接收终端无法即使接收这些紧急消息。
发明内容
本发明实施例提供一种请求消息管理方法及装置、存储介质;能够充分、有效利用现有的请求消息发送、接收资源,保证终端无遗漏的接收消息。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种请求消息管理方法,包括:
建立缓存队列,数量至少为两个;
根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;
从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;
将所述统一缓存队列中的请求消息调度到对应调度队列中;
通过与所述调度队列对应的发送通道向终端发送所述请求消息。
本发明实施例还提供了一种请求消息管理装置,包括:
缓存模块,用于建立缓存队列,所述缓存队列数量至少为两个;
所述缓存模块,用于根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;
调度模块,用于从所述缓存队列中提取请求消息;
所述调度模块,用于将所提取的请求消息存储到统一缓存队列中;
所述调度模块,用于将所述统一缓存队列中的请求消息调度到对应的调度队列中;
所述调度模块,用于通过与所述调度队列对应的发送通道向终端发送。
本发明实施例还提供了一种请求消息管理装置,包括:
处理器和用于存储能够在处理器上运行的可执行指令的存储器,
其中,所述处理器用于运行所述可执行指令时,执行以下操作:
建立缓存队列,数量至少为两个;
根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;
从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;
将所述统一缓存队列中的请求消息调度到对应的调度队列中;
通过与所述调度队列对应的发送通道向终端发送。
所述建立缓存队列,包括:
建立固定数量的缓存队列;
所建立的缓存队列用于存储与所述缓存队列所对应优先级的请求消息。
所述建立缓存队列,包括:
建立与所初始化的请求消息的全部优先级数量相应的缓存队列。
所述建立与所初始化的请求消息的全部优先级数量相应的缓存队列,包括:
建立与所述所初始化的请求消息的全部优先级数量,呈正相关的缓存队列。
所述建立缓存队列,包括:
获取所接收的请求消息所涉及的优先级;
根据所接收的请求消息所涉及的优先级建立缓存队列。
所述根据所接收的请求消息所涉及的优先级建立缓存队列,包括
根据所接收的请求消息所涉及的优先级,建立与所涉及的优先级相应数量的缓存队列。
所述根据所接收的请求消息所涉及的优先级建立缓存队列,包括:
将所接收的请求消息所涉及的优先级的数量,与优先级的数量阈值进行匹配,根据匹配结果,建立动态数量的缓存队列,其中包括至少一个缓存队列用于存储所述请求消息中的固定优先级级别的请求消息。
所述根据匹配结果,建立动态数量的缓存队列,包括至少以下之一:
当所述请求消息所涉及的优先级的数量大于等于所述优先级的数量阈值时,建立第一数量的缓存队列;
当所述请求消息所涉及的优先级的数量小于所述优先级的数量阈值时,建立第二数量的缓存队列。
所述从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中,包括:
当从所述缓存队列中提取的请求消息全部被调度到对应的调度队列时,
通过轮询提取的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中。
所述通过轮询提取的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中,包括:
对所述缓存队列的优先级进行降序排列;
按照所述降序排列的结果,通过轮询提取,从所述缓存队列中提取请求消息到所述统一缓存队列中。
所述将所述统一缓存队列中的请求消息调度到对应调度队列中,包括至少以下之一:
根据统一缓存队列中消息的优先级标识,分发到实时或非实时调度队列中;
根据所述统一缓存队列中的请求消息的优先级,确定所述请求消息的实时或非实时的调度属性,
根据所述请求消息的调度属性调度到实时调度队列或非实时调度队列中。
所述根据所述统一缓存队列中的请求消息的优先级,确定所述请求消息的实时或非实时的调度属性,包括:
当所述统一缓存队列中的请求消息的优先级,高于优先级阈值时,确定所述请求消息的实时的调度属性;
当所述统一缓存队列中的请求消息的优先级,不高于所述优先级阈值时,确定所述请求消息的非实时的调度属性。
所述方法还包括:
解析所接收的请求消息,获取所述请求消息的渠道信息;
基于所述渠道信息,确定所述请求消息的优先级。
所述方法还包括:
当所述请求消息自身携带优先级信息时,
基于所述请求消息所携带的优先级信息,执行以下至少之一:
将所述请求消息携带的优先级信息融合于所述请求消息的渠道信息中;
所述渠道信息继承所述请求消息携带的优先级信息。
所述通过与所述调度队列对应的发送通道向终端发送,包括至少以下之一:
当所述调度队列为实时调度队列时,将所述调度队列中的请求消息通过预留通道发送,所述预留通道用于即时发送所述实时调度队列中的请求消息;
当所述调度队列为非实时调度队列时,将所述非调度队列中的请求消息根据优先级通过通用通道顺序发送。
本发明实施例还提供了一种计算机可读存储介质,其上存储有可执行指令,其特征在于,该可执行指令被处理器执行:
建立缓存队列,数量至少为两个;
根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;
从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;
将所述统一缓存队列中的请求消息调度到对应调度队列中;
通过与所述调度队列对应的发送通道向终端发送所述请求消息。
所述建立缓存队列,包括:
建立固定数量的缓存队列;
所建立的缓存队列用于存储与所述缓存队列所对应优先级的请求消息。
所述建立缓存队列,包括:
建立与所初始化的请求消息的全部优先级数量相应的缓存队列。
所述建立与所初始化的请求消息的全部优先级数量相应的缓存队列,包括:
建立与所述所初始化的请求消息的全部优先级数量,呈正相关的缓存队列。
所述建立缓存队列,包括:
获取所接收的请求消息所涉及的优先级;
根据所接收的请求消息所涉及的优先级建立缓存队列。
所述根据所接收的请求消息所涉及的优先级建立缓存队列,包括
根据所接收的请求消息所涉及的优先级,建立与所涉及的优先级相应数量的缓存队列。
所述根据所接收的请求消息所涉及的优先级建立缓存队列,包括:
将所接收的请求消息所涉及的优先级的数量,与优先级的数量阈值进行匹配,根据匹配结果,建立动态数量的缓存队列,其中包括至少一个缓存队列用于存储所述请求消息中的固定优先级级别的请求消息。
所述根据匹配结果,建立动态数量的缓存队列,包括至少以下之一:
当所述请求消息所涉及的优先级的数量大于等于所述优先级的数量阈值时,建立第一数量的缓存队列;
当所述请求消息所涉及的优先级的数量小于所述优先级的数量阈值时,建立第二数量的缓存队列。
所述从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中,包括:
当从所述缓存队列中提取的请求消息全部被调度到对应的调度队列时,
通过轮询提取的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中。
所述通过轮询提取的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中,包括:
对所述缓存队列的优先级进行降序排列;
按照所述降序排列的结果,通过轮询提取,从所述缓存队列中提取请求消息到所述统一缓存队列中。
所述将所述统一缓存队列中的请求消息调度到对应调度队列中,包括至少以下之一:
根据统一缓存队列中消息的优先级标识,分发到实时或非实时调度队列中;
根据所述统一缓存队列中的请求消息的优先级,确定所述请求消息的实时或非实时的调度属性,
根据所述请求消息的调度属性调度到实时调度队列或非实时调度队列中。
所述根据所述统一缓存队列中的请求消息的优先级,确定所述请求消息的实时或非实时的调度属性,包括:
当所述统一缓存队列中的请求消息的优先级,高于优先级阈值时,确定所述请求消息的实时的调度属性;
当所述统一缓存队列中的请求消息的优先级,不高于所述优先级阈值时,确定所述请求消息的非实时的调度属性。
所述方法还包括:
解析所接收的请求消息,获取所述请求消息的渠道信息;
基于所述渠道信息,确定所述请求消息的优先级。
所述方法还包括:
当所述请求消息自身携带优先级信息时,
基于所述请求消息所携带的优先级信息,执行以下至少之一:
将所述请求消息携带的优先级信息融合于所述请求消息的渠道信息中;
所述渠道信息继承所述请求消息携带的优先级信息。
所述通过与所述调度队列对应的发送通道向终端发送,包括至少以下之一:
当所述调度队列为实时调度队列时,将所述调度队列中的请求消息通过预留通道发送,所述预留通道用于即时发送所述实时调度队列中的请求消息;
当所述调度队列为非实时调度队列时,将所述非调度队列中的请求消息根据优先级通过通用通道顺序发送。
本发明实施例具有以下有益效果:
1)当有大量请求消息到达时,实现对请求消息积压的缓存以及初级调度机制,提高了对请求消息的并发处理能力。
2)通过将所接收的请求消息存储到对应的缓存队列中,解决了现有技术条件下,大量请求消息到来时的高延时问题。
3)通过对所到来的大量请求消息的缓存和调度处理,解决了现有技术中的请求消息的丢包率较高的问题,提高了对请求消息处理的可靠性。
附图说明
图1是本发明实施例提供的请求消息管理方法的一个可选的流程示意图;
图2是本发明实施例提供的请求消息管理装置的一个可选的结构示意图;
图3A是本发明实施例提供的请求消息管理方法的使用环境示意图;
图3B是本发明实施例提供的请求消息管理装置的一个可选的结构示意图;
图3C是本发明实施例提供的请求消息管理方法使用中提取请求消息的过程流程图;
图4是本发明实施例提供的通过表1和表2计算得到的在多个发送终端同时以10ms和20ms的间隔发送请求消息时,请求消息丢失率示意图;
图5是本发明实施例提供的请求消息管理方法使用中紧急请求消息时延柱状示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)终端,包括但不限于:普通终端、专用终端,其中所述普通终端与发送通道保持长连接和/或短连接,所述专用终端与所述发送通道保持长连接。
2)紧急请求消息:对所接收的请求消息进行判断,当请求消息的优先级高于系统设定的优先级阈值时,判断所述请求消息为紧急消息,低于系统设定的优先级阈值时,判断所述请求消息为非紧急消息。
对所述请求消息的来源渠道进行判断,当所述请求消息来源于系统设定的紧急渠道时,所述请求消息为紧急消息;或者,当所接收的请求消息带有紧急消息标识时,系统判断所述请求消息为紧急请求消息。
所述紧急请求消息的时延性高于非紧急请求消息的时延性。
图1为本发明实施例提供的请求消息管理方法的一个可选的流程示意图,如图1所示,本发明实施例提供的请求消息管理方法的一个可选的流程包括以下步骤:
步骤101:建立缓存队列,数量至少为两个。
步骤102:根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中。
在本发明的一个实施例中,所述建立缓存队列,包括:建立固定数量的缓存队列;所建立的缓存队列用于接收、并存储所述缓存队列所对应优先级的请求消息;其中,所述缓存队列的数量不因为所接收请求消息数量的改变发生变化,本实施例所处的使用环境主要针对固定使用环境的系统,所接收的请求消息的峰值不会出现较大的变化。
在本发明的一个实施例中,所述建立缓存队列,包括:建立静态数量的缓存队列,所述静态数量与初始化的请求消息涉及的全部优先级的数量相应;当接收到请求消息时,通过本发明所记载的请求消息管理方法,可以将全部请求消息或者部分请求消息进行初始化,其中,在本发明的一个实施例中,根据完成初始化的请求消息所涉及的优先级的数量,建立与该数量对应的缓存队列;其中,在本发明的一个实施例中,所述缓存队列的数量与所述完成初始化的请求消息所涉及的优先级的数量的比例为1:1,或1:2,或2:1。
在本发明的一个实施例中,所述建立静态数量的缓存队列,所述静态数量与初始化的请求消息涉及的全部优先级的数量相应,还包括,根据硬件设备的运行速度和信息处理能力和/或根据请求消息管理装置所处网络环境中各接口和总线的信息传输能力,建立静态数量的缓存队列。
在本发明的一个实施例中,所述静态数量与初始化的请求消息涉及的全部优先级的数量相应,包括:所述静态数量与全部优先级呈正相关的数量关系,所述全部优先级涉及所初始化的请求消息的涉及的优先级。
例如,当完成初始化的请求消息数量为4条时,在本发明的一个实施例中建立2条缓存队列;当完成初始化的请求消息数量为8条时,在本发明的一个实施例中建立4条缓或3条存队列。
在本发明的一个实施例中,所述建立缓存队列,包括:获取所接收的请求消息所涉及的优先级;根据所接收的请求消息所涉及的优先级建立动态数量的缓存队列。其中,所述所接收的请求消息包括:已经接收并完成发送的请求消息、已经完成接收但未完成发送的请求消息。
例如,所述根据所接收的请求消息所涉及的优先级建立缓存队列,包括:
根据所接收的请求消息所涉及的优先级,建立与所涉及的优先级相应数量的缓存队列。在本发明的一个实施例中,已经完成接收但未完成发送的请求消息数量为4条,涉及的优先级数量为4时,可选的,建立4条或2条缓存队列。
在本发明的一个实施例中,可以按照固定比例建立与所涉及的优先级相应数量的缓存队列。已经完成接收但未完成发送的请求消息数量为4条,涉及的优先级数量为4时,按照2比1的比例建立2条等待队列。
例如,所述根据所接收的请求消息所涉及的优先级建立缓存队列,包括:
将所接收的请求消息所涉及的优先级的数量,与优先级的数量阈值进行匹配,根据匹配结果,建立动态数量的缓存队列,其中包括至少一个缓存队列用于存储所述请求消息中的固定优先级的请求消息。
其中,在执行本发明所提供的请求消息管理方法时,硬件设备可以提取单位时间内,已经接收并完成发送的请求消息的数量,根据所述已经接收并完成发送的请求消息的数量,对相邻的单位时间内将要接收的请求消息数量进行预判,以实现智能设定缓存队列的数量。
将单位时间内已经所接收并完成发送的请求消息所涉及的优先级的数量,与优先级的数量阈值进行匹配,根据匹配结果,建立动态数量的缓存队列,所述动态数量与单位时间内已经所接收并完成发送的请求消息所涉及的优先级的数量相关联,其中,包括至少一个缓存队列用于存储所述请求消息中的非紧急请求消息,所述优先级的数量阈值可以由系统进行设定不同数值。
本发明提供的另一个实施例中,系统设定的优先级数量阈值为5,若接收的请求消息涉及的优先级数量为6,大于优先级数量阈值5,此时,则建立第一数量的缓存队列;若接收的请求消息涉及的优先级数量为4,小于优先级数量阈值5,则建立第二数量的缓存队列,所述第一数量大于所述第二数量。
步骤103:从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中。
所述从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中,包括:当从所述缓存队列中提取的请求消息全部被调度到对应的调度队列时,通过轮询提取的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中。
例如,在本发明的一个实施例中,可以设置取值单元,用于从所述缓存队列中提取请求消息到所述统一缓存队列中,当所述取值单元为空时,从所述缓存队列顶部开始遍历查找,通过轮询提取的方式,当所述缓存队列中有请求消息时,通过所述取值单元将所述缓存队列中提取请求消息到所述统一缓存队列中。
在本发明的一个实施例中,所述通过轮询提取的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中,包括:对所述缓存队列的优先级进行降序排列;按照所述降序排列的结果,通过轮询提取,从所述缓存队列中提取请求消息到所述统一缓存队列中。由此,可以保证高优先级缓存队列中的请求消息,优先进入统一缓存队列中。
在本发明的一个实施例中,当所接收的请求消息携带有优先级标识时,执行本发明所记载请求消息管理方法的硬件设备可以识别各所述优先级标识,进行指定提取,使得高优先级的请求消息优先进入所述统一缓存队列中,该实施例中应用场景包括:针对指定终端,例如需要对地震发生做出应急反应的终端设备发送请求消息时,在接收到表示地震发生的最高优先级请求消息时,可以在系统中优先发送该请求消息。
步骤104:将所述统一缓存队列中的请求消息调度到对应调度队列中。
所述将所述统一缓存队列中的请求消息调度到对应调度队列中,包括至少以下之一:
1)根据统一缓存队列中消息的优先级标识,分发到实时或非实时调度队列中;
2)根据所述统一缓存队列中的请求消息的优先级,确定所述请求消息的实时或非实时的调度属性,根据所述请求消息的调度属性调度到实时调度队列或非实时调度队列中。
在本发明的一个实施例中,所述根据所述统一缓存队列中的请求消息的优先级,确定所述请求消息的实时或非实时的调度属性,包括:当所述统一缓存队列中的请求消息的优先级,高于优先级阈值时,确定所述请求消息的实时的调度属性;当所述统一缓存队列中的请求消息的优先级,不高于所述优先级阈值时,确定所述请求消息的非实时的调度属性。
通过该实施例所记载的请求消息管理方法,硬件设备可以通过对请求消息的优先级完成判断,进而执行具体的调度。
步骤105:通过与所述调度队列对应的发送通道向终端发送所述请求消息。
在本发明的一个实施例中,接收到所述请求消息时,还可以首先确定所接收的请求消息的优先级;在本发明的一个实施例中,解析所接收的请求消息,获取所述请求消息的渠道信息;基于所述渠道信息,确定所述请求消息的优先级。
作为示例,渠道信息用于表示请求消息的来源,例如所来源的服务器或所来源的应用;所述基于所述渠道信息,确定所述请求消息的优先级,可以是根据预设置的渠道优先级,确定所述请求消息的优先级,例如:消息的来源应用实时性高的应用高于实时性低的应用。
所述渠道信息,包括但不限于:所述请求消息的来源APP、所述请求消息的来源终端;
在本发明的一个实施例中,所述请求消息的来源APP位于预设的APP信任列表时,APP信任列表中的APP所发出的请求消息的优先级高于非APP信任列表中的APP所发出的请求消息优先级。
在本发明的一个实施例中,当所述请求消息自身携带优先级信息时,基于所述请求消息所携带的优先级信息,执行以下至少之一:将所述请求消息携带的优先级信息融合于所述请求消息的渠道信息中;所述渠道信息继承所述请求消息携带的优先级信息。
当确定将所述请求消息携带的优先级信息融合于所述请求消息的渠道信息中时,基于融合后的所述渠道信息确定所述请求消息的优先级。
当确定所述渠道信息继承所述请求消息携带的优先级信息时,仅需要基于所述渠道信息,确定所述请求消息的优先级。
所述通过与所述调度队列对应的发送通道向终端发送,包括至少以下之一:
当所述调度队列为实时调度队列时,将所述调度队列中的请求消息通过预留通道发送,所述预留通道用于即时发送所述实时调度队列中的请求消息;当所述调度队列为非实时调度队列时,将所述非调度队列中的请求消息根据优先级通过通用通道顺序发送。
图2是本发明实施例提供的请求消息管理装置的一个可选的结构示意图,如图2所示,请求消息管理装置500可以是带有包括带有请求消息处理功能的移动电话、计算机、数字广播终端、信息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。图2所示的请求消息管理装置500包括:至少一个处理器501、存储器502、至少一个网络接口504和用户接口503。请求消息管理装置500中的各个组件通过总线系统505耦合在一起。可理解,总线系统505用于实现这些组件之间的连接通信。总线系统505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统505。
其中,用户接口503可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器502可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器502旨在包括这些和任意其它适合类型的存储器。
本发明实施例中的存储器502包括但不限于:三态内容寻址存储器、静态随机存储器能够存储请求消息数据以支持请求消息管理装置500的操作。这些数据的示例包括:用于在请求消息管理装置500上操作的任何可执行指令,如操作系统5021和缓存模块5022和调度模块5023;各类型请求消息等。其中,操作系统5021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。缓存模块5022和调度模块5023可以包含各种应用程序,例如带有请求消息管理功能的客户端、或应用程序等,用于实现对所接收的请求消息进行存储、转发在内的各种应用业务。实现本发明实施例请求消息管理方法的程序可以包含在缓存模块5022和调度模块5023中。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的操作完成。上述的处理器501可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器501可以实现或者执行本发明实施例中的提供的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所提供的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器502,处理器501提取存储器502中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,请求消息管理装置500可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行所述请求消息管理方法。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括可执行指令的存储器502,上述可执行指令可由请求消息管理装置500的处理器501执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、FlashMemory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
本发明实施例还提供了一种计算机可读存储介质,其上存储有可执行指令,该可执行指令被处理器运行时,执行:建立缓存队列,数量至少为两个;根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;将所述统一缓存队列中的请求消息调度到对应的调度队列中;通过与所述调度队列对应的发送通道向终端发送所述请求消息。
在本发明的一个实施例中,缓存模块5022,用于建立缓存队列数量至少为两个。
在本发明的一个实施例中,所述缓存模块5022,用于建立固定数量的缓存队列;所建立的缓存队列用于存储与所述缓存队列所对应的优先级的请求消息。
所建立的缓存队列用于存储与所述缓存队列所对应优先级的请求消息;其中,所述缓存队列的数量不因为所接收请求消息数量的改变发生变化,本实施例所处的使用环境主要针对固定使用环境的系统,所接收的请求消息的峰值不会出现较大的变化。
在本发明的一个实施例中,所述缓存模块5022,用于建立静态数量的缓存队列;所述静态数量与初始化的请求消息涉及的全部优先级的数量相应。
在本发明的一个实施例中,所述缓存模块5022,用于全部优先级呈正相关的数量关系的缓存队列;所述全部优先级涉及所初始化的请求消息的涉及的优先级。
当接收到请求消息时,通过本发明所记载的请求消息管理方法,可以将全部请求消息或者部分请求消息进行初始化,在本发明的一个实施例中,根据完成初始化的请求消息所涉及的优先级的数量,建立与该数量对应的缓存队列;在本发明的一个实施例中,所述缓存队列的数量与所述完成初始化的请求消息所涉及的优先级的数量的比例为1:1,或1:2,或2:1。
在本发明的一个实施例中,所述建立与所初始化的请求消息的全部优先级数量相应的缓存队列,包括:建立与所述所初始化的请求消息的全部优先级数量,呈正相关的缓存队列。
例如,当完成初始化的请求消息数量为4条时,在本发明的一个实施例中建立2条缓存队列;当完成初始化的请求消息数量为8条时,在本发明的一个实施例中建立4条或3条存队列。
在本发明的一个实施例中,所述缓存模块5022,用于获取所接收的请求消息所涉及的优先级;所述缓存模块,用于根据所接收的请求消息,建立动态数量缓存队列。
根据所接收的请求消息所涉及的优先级,建立与所涉及的优先级相应数量的缓存队列。在本发明的一个实施例中,已经完成接收但未完成发送的请求消息数量为4条,涉及的优先级数量为4时,可选的,建立4条或2条缓存队列。
在本发明的一个实施例中,所述缓存模块5022,用于根据所接收的请求消息所涉及的优先级,建立与所涉及的优先级相应数量的缓存队列。
在本发明的一个实施例中,所述缓存模块5022,用于将所接收的请求消息所涉及的优先级的数量,与优先级的数量阈值进行匹配;所述缓存模块5022,用于根据匹配结果,建立动态数量的缓存队列;其中包括至少一个缓存队列用于存储所述请求消息中的固定优先级的请求消息。
其中,在执行本发明所提供的请求消息管理方法时,硬件设备可以提取单位时间内,已经接收并完成发送的请求消息的数量,根据所述已经接收并完成发送的请求消息的数量,对相邻的单位时间内将要接收的请求消息数量进行预判,以实现智能设定缓存队列的数量。
将单位时间内已经所接收并完成发送的请求消息所涉及的优先级的数量,与优先级的数量阈值进行匹配,根据匹配结果,建立动态数量的缓存队列,所述动态数量与单位时间内已经所接收并完成发送的请求消息所涉及的优先级的数量相关联,其中,包括至少一个缓存队列用于存储所述请求消息中的非紧急请求消息,所述优先级的数量阈值可以由系统进行设定不同数值。
在本发明的一个实施例中,所述缓存模块5022,用于当所述请求消息所涉及的优先级的数量大于等于所述优先级的数量阈值时,建立第一数量的缓存队列;所述缓存模块5022,用于当所述请求消息所涉及的优先级的数量小于所述优先级的数量阈值时,建立第二数量的缓存队列。
例如,系统设定的优先级数量阈值为5,若接收的请求消息涉及的优先级数量为6,大于优先级数量阈值5,此时,则建立第一数量的缓存队列;若接收的请求消息涉及的优先级数量为4,小于优先级数量阈值5,则建立第二数量的缓存队列,所述第一数量大于所述第二数量。
在本发明的一个实施例中,所述缓存模块5022,用于跟据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;所述缓存模块5022,用于通过轮询提取的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中。
可以设置取值单元,用于从所述缓存队列中提取请求消息到所述统一缓存队列中,当所述取值单元为空时,从所述缓存队列顶部开始遍历查找,通过轮询提取的方式,当所述缓存队列中有请求消息时,通过所述取值单元将所述缓存队列中提取请求消息到所述统一缓存队列。
在本发明的一个实施例中,所述缓存模块5022,用于对所述缓存队列的优先级进行降序排列;按照所述降序排列的结果,通过轮询提取,从所述缓存队列中提取请求消息到所述统一缓存队列中。
调度模块5023,用于从所述缓存队列中提取请求消息;所述调度模块5023,用于将所提取的请求消息存储到统一缓存队列中。
在本发明的一个实施例中,所述调度模块5023,用于根据统一缓存队列中消息的优先级标识,分发到实时或非实时调度队列中;所述调度模块5023,用于根据所述统一缓存队列中的请求消息的优先级,确定所述请求消息的实时或非实时的调度属性,所述调度模块5023,用于根据所述请求消息的调度属性调度到实时调度队列或非实时调度队列中。
按照所述降序排列的结果,通过轮询提取,从所述缓存队列中提取请求消息到所述统一缓存队列中。由此,可以保证高优先级缓存队列中的请求消息,优先进入统一缓存队列中。
在本发明的一个实施例中,所述调度模块5023,用于当所述统一缓存队列中的请求消息的优先级,高于优先级阈值时,确定所述请求消息的实时的调度属性;当所述统一缓存队列中的请求消息的优先级,不高于所述优先级阈值时,确定所述请求消息的非实时的调度属性。
所述调度模块5023,用于将所述统一缓存队列中的请求消息调度到对应调度队列中;所述调度模块5023,用于通过与所述调度队列对应的发送通道向终端发送。
当所接收的请求消息携带有优先级标识时,执行本发明所记载请求消息管理方法的硬件设备可以识别各所述优先级标识,进行指定提取,使得高优先级的请求消息优先进入所述统一缓存队列中,该实施例中应用场景包括:针对指定终端,例如需要对地震发生做出应急反应的终端设备发送请求消息时,在接收到表示地震发生的最高优先级请求消息时,可以在系统中优先发送该请求消息。
在本发明的一个实施例中,所述缓存模块5022,用于解析所接收的请求消息,获取所述请求消息的渠道信息;所述基于所述渠道信息,确定所述请求消息的优先级,可以是根据预设置的渠道优先级,确定所述请求消息的优先级,例如:消息的来源应用实时性高的应用高于实时性低的应用;所述缓存模块5022,用于基于所述渠道信息,确定所述请求消息的优先级。
在本发明的一个实施例中,当所述请求消息自身携带优先级信息时,所述缓存模块5022,用于将所述请求消息携带的优先级信息融合于所述请求消息的渠道信息中;当确定将所述请求消息携带的优先级信息融合于所述请求消息的渠道信息中时,基于融合后的所述渠道信息确定所述请求消息的优先级。
当确定所述渠道信息继承所述请求消息携带的优先级信息时,仅需要基于所述渠道信息,确定所述请求消息的优先级。
在本发明的一个实施例中,所述调度模块5023,用于当所述调度队列为实时调度队列时,将所述调度队列中的请求消息通过预留通道发送,所述预留通道用于即时发送所述实时调度队列中的请求消息;所述调度模块5023,用于当所述调度队列为非实时调度队列时,将所述非调度队列中的请求消息根据优先级通过通用通道顺序发送。
图3A是本发明实施例提供的请求消息管理方法的使用环境示意图,如图3A所示,发送控制台,是管理员登陆平台,以网页或者特定语言开发的工具包(SDK)形式呈现。通过发送控制台,用户可以实现以HTTP请求方式的消息发送,查询注册用户信息以及对用户进行操作;注册服务器,用来存储终端用户的注册信息,方便对用户进行分类;转发服务器负责消息体的存储和转发,接收终端可以是各类移动互联设备,既可以通过TCP长连接方式和转发服务器连接,通过常驻内存的消息服务进程接收推送信息,也可以通过TCP短连接方式和转发服务器连接。当所述终端为专用终端时,仅通过TCP长连接方式和转发服务器连接。
图3B是本发明实施例提供的请求消息管理装置的一个可选的结构示意图,如图3B所示,本发明实施例提供的请求消息管理装置的一个可选的结构包括:
缓存模块301和调度模块302;
其中所述缓存模块301进一步包括:请求消息接收器3011、缓存队列3012、统一缓存器3013;
所述调度模块302进一步包括:缓存提取接口3021、实时调度队列3022、非实时调度队列3023、预留终端连接器3024、通用终端连接器3025;
在本发明的一个实施例中,首先建立缓存队列3022,其中所述缓存队列3022数量四个;
当所述请求消息接收器3011接收到地震信息、QQ登录验证请求、股市信息和游戏应用请求消息时,根据各请求消息所对应的不同优先级,将各信息分别存储到对应的四个缓存队列中,其中所接收的地震信息、QQ登录验证请求、股市信息和游戏应用请求消息的优先级依次降低。
在本发明的另一个实施例中,当所述缓存队列3022数量三个时,当所述请求消息接收器3011接收到地震信息、QQ登录验证请求、股市信息和游戏应用请求消息时,由于其中所接收的地震信息、QQ登录验证请求、股市信息和游戏应用请求消息的优先级依次降低,因此,所述地震信息进入第一缓存队列,QQ登录验证请求和股市信息进入第二缓存队列,游戏应用请求消息进入第三缓存队列,由此,请求消息的优先级越高,请求消息占用越多的缓存队列。
统一缓存器3013从所述缓存队列3012中提取请求消息,统一缓存器3013由一个Key-Value类型的数据库实现,每个缓存队列3012对应统一缓存器3013的一个Key位置,当缓存队列3012检测到统一缓存器3013的Key值对应Value为空时,将队头元素写入相应的Value。
缓存提取接口3021,采用轮询提取机制从统一缓存器3013提取消息时,每一条请求消息被提取的机会是均等的;但由于高优先级的请求消息占用更多的Key位置,其被提取的概率也等比例的增加。缓存提取接口3021通过一次提取读到高优先级请求消息的概率:
其中n表示缓存队列总数,m表示缓存队列中为高优先级请求消息分配的缓存队列数。当P较大时,意味着为高优先级请求消息分配了更多的传输通道,高优先级请求消息不必在队列中等待太长时间即可推送到调度模块。
相比于现有技术中的强调依据接收时间的顺序,公平接收转发请求消息的处理方式,采用本申请所记载的请求消息管理方法,能够根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;避免了采用现有技术所造成的只能根据接收时间的顺序对所接收的请求消息进行转发所造成的紧急请求消息的延误。
图3C是本发明实施例提供的请求消息管理方法使用中提取请求消息的过程流程图,如图3C所示,缓存提取接口3021,采用轮询提取机制从统一缓存器3013提取消息完成后,缓存提取接口3021将所提取的请求消息存储到实时调度队列3022或非实时调度队列3023中,包括以下步骤:
步骤401:开始;
步骤402:判断实时调度队列是否为空,如果是,执行步骤404,否则,执行步骤403;
步骤403:将请求消息存储到实时调度队列中;
步骤404:判断非实时调度队列是否为空,如果是,执行步骤401,否则执行步骤405;
步骤405:将请求消息存储到非实时调度队列中。
通过图3C所记载的提取请求消息的过程,实时调度队列可以存储高优先级的请求消息,非实时调度队列即可以按照优先级由高到低的方式存储所述请求消息,也可以按照请求消息接收的时间顺序存储。
在本实施例中,所接收的地震信息、QQ登录验证请求、股市信息和游戏应用请求消息中,缓存提取接口3021将所提取的地震信息存储到所述实时调度队列3022中,将QQ登录验证请求、股市信息和游戏应用请求消息按照优先级由高到低的顺序,依次保存在非实时调度队列3023中,在本发明的一个实施例中,所述实时调度队列3022和非实时调度队列3023可以统一表现为调度队列。
在本实施例中,当缓存提取接口3021从统一缓存器3013中提取的是紧急消息时,消息直接进入实时调度队列,随后由专门预留给实时调度队列的预留终端连接器3024提取发送;当缓存提取接口从统一缓存器3013中读出的是非紧急消息时,这时系统根据消息优先级由高到低,由通用终端连接器3025逐条提取发送。
若某时刻实时调度队列有A数目的消息等待调度,非实时调度队列同时有B数目的消息等待调度,调度的结果是A直接减小直至为0,B逐次减小,每次必须保证A为0。在不考虑连接终端等待的情况下,紧急消息的最坏时延:
普通消息的最坏时延:
其中,ti和ci分别为第i条紧急消息在每个终端的发送时间和第i条消息需要发送的终端数,tj和cj分别为第j条普通消息在每个终端的发送时间和第j条消息需要发送的终端数。
在本发明的另一个实施例中,如图3A的使用环境中,发送控制台采用Shell脚本方式实现请求服务。使用Nginx服务器作为请求接收器,统一缓存器采用Redis数据库,当采用紧急消息占比为10%的请求消息发送方案,设置5个缓存队列,分配给高优先级的紧急消息其中的2个队列。在执行根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;将所述统一缓存队列中的请求消息调度到对应调度队列中;通过与所述调度队列对应的发送通道向终端发送所述请求的过程中,在每个发送端发送1000条请求消息,每条请求消息发送间隔20ms,同一终端设备接收的条件下,当通过一个发送端发送、两个发送端同时发送、三个发送端同时发送时的请求消息到达数指标,见表1:
表1
由表1可见,通过本发明所记载的请求消息管理方法,在多个发送终端同时以20ms的间隔发送请求消息时,可以有效提高请求消息的到达率,降低请求消息在接收发送过程中的丢失。
在每个发送端发送1000条消息,每条消息发送间隔10ms,同一终端设备接收的条件下,分别测试一个发送端发送、两个发送端同时发送、三个发送端同时发送时的消息到达数指标,见表2:
测试时机 发送终端数量 发送终端数量 发送终端数量
1个 2个 3个
缓存 1000 1247 1641
现有技术条件 100% 63.7% 54.7%
缓存 1000 1540 2016
本发明请求消息管理方法 100% 77% 67.2%
表2
由表2可见,通过本发明所记载的请求消息管理方法,在多个发送终端同时以10ms的间隔发送请求消息时,可以有效提高请求消息的到达率,降低请求消息在接收发送过程中的丢失。
图4为通过表1和表2计算得到的在多个发送终端同时以10ms和20ms的间隔发送请求消息时,请求消息丢失率示意图,如图4所示,实线表示10ms间隔发送请求消息时,请求消息丢失率,虚线表示20ms间隔发送请求消息时,请求消息丢失率;通过本发明所记载的根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;将所述统一缓存队列中的请求消息调度到对应调度队列中;通过与所述调度队列对应的发送通道向终端发送所述请求消息,可以有效提高请求消息的到达率,降低请求消息在接收发送过程中的丢失。
在本实施例中,分别在200个终端,500个终端,1000个终端条件下,应用本发明所记载的在执行根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;将所述统一缓存队列中的请求消息调度到对应调度队列中;通过与所述调度队列对应的发送通道向终端发送所述请求的过程中,发送1000条紧急消息的平均时延,结果如表3所示,表3中紧急消息时延的单位为:毫秒(ms),
表3
通过表3记载可知,通过本发明所记载的请求消息管理方法,可以有效降低高优先级的紧急请求消息的时延,避免现有技术条件下,高优先级的紧急请求消息由于等待发送所造成的高时延问题。
图5是本发明实施例提供的请求消息管理方法使用中紧急请求消息时延柱状示意图,如图5所示,实线柱状图用于表示现有技术条件下紧急请求消息时延时间,阴影柱状图用于表示采用本申请请求消息管理方法条件下紧急请求消息时延时间;通过本发明所记载的根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;将所述统一缓存队列中的请求消息调度到对应调度队列中;通过与所述调度队列对应的发送通道向终端发送所述请求消息,可以有效降低高优先级的紧急请求消息的时延,避免现有技术条件下,高优先级的紧急请求消息由于等待发送所造成的高时延问题。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序操作实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序操作到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的操作产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序操作也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的操作产生包括操作装置的制造品,该操作装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序操作也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的操作提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种请求消息管理方法,其特征在于,所述方法包括:
建立缓存队列,数量至少为两个;
根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;
从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;
将所述统一缓存队列中的请求消息调度到对应的调度队列中;
通过与所述调度队列对应的发送通道向终端发送所述请求消息。
2.根据权利要求1所述的方法,其特征在于,所述建立缓存队列,包括:
建立固定数量的缓存队列;
所建立的缓存队列用于接收、并存储所述缓存队列所对应优先级的请求消息。
3.根据权利要求1所述的方法,其特征在于,所述建立缓存队列,包括:
建立静态数量的缓存队列,所述静态数量与初始化的请求消息涉及的全部优先级的数量相应。
4.根据权利要求3所述的方法,其特征在于,所述静态数量与初始化的请求消息涉及的全部优先级的数量相应,包括:
所述静态数量与全部优先级呈正相关的数量关系,所述全部优先级涉及所初始化的请求消息的涉及的优先级。
5.根据权利要求1所述的方法,其特征在于,所述建立缓存队列,包括:
获取所接收的请求消息所涉及的优先级;
根据所接收的请求消息所涉及的优先级建立动态数量的缓存队列。
6.根据权利要求5所述的方法,其特征在于,所述根据所接收的请求消息所涉及的优先级建立动态数量的缓存队列,包括
根据所接收的请求消息所涉及的优先级,建立与所涉及的优先级相应数量的缓存队列。
7.根据权利要求5所述的方法,其特征在于,所述根据所接收的请求消息所涉及的优先级建立动态数量的缓存队列,包括:
将所接收的请求消息所涉及的优先级的数量,与优先级的数量阈值进行匹配,根据匹配结果,建立动态数量的缓存队列,其中包括至少一个缓存队列用于存储所述请求消息中的固定优先级的请求消息。
8.根据权利要求5所述的方法,其特征在于,所述根据匹配结果,建立动态数量的缓存队列,包括:
当所述请求消息所涉及的优先级的数量大于等于所述优先级的数量阈值时,建立第一数量的缓存队列;
当所述请求消息所涉及的优先级的数量小于所述优先级的数量阈值时,建立第二数量的缓存队列。
9.根据权利要求1所述的方法,其特征在于,所述从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中,包括:
当从所述缓存队列中提取的请求消息全部被调度到对应的调度队列时,
通过轮询提取的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中。
10.根据权利要求9所述的方法,其特征在于,所述通过轮询提取的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中,包括:
对所述缓存队列的优先级进行降序排列;
按照所述降序排列的结果,通过轮询提取所述缓存队列的方式,从所述缓存队列中提取请求消息到所述统一缓存队列中。
11.根据权利要求1所述的方法,其特征在于,所述将所述统一缓存队列中的请求消息调度到对应调度队列中,包括至少以下之一:
根据统一缓存队列中消息的优先级标识,分发到实时或非实时调度队列中;
根据所述统一缓存队列中的请求消息的优先级,确定所述请求消息的实时或非实时的调度属性,
根据所述请求消息的调度属性调度到实时调度队列或非实时调度队列中。
12.根据权利要求11所述的方法,其特征在于,所述根据所述统一缓存队列中的请求消息的优先级,确定所述请求消息的实时或非实时的调度属性,包括:
当所述统一缓存队列中的请求消息的优先级,高于优先级阈值时,确定所述请求消息的实时的调度属性;
当所述统一缓存队列中的请求消息的优先级,不高于所述优先级阈值时,确定所述请求消息的非实时的调度属性。
13.根据权利要求1所述的方法,其特征在于,所述通过与所述调度队列对应的发送通道向终端发送,包括至少以下之一:
当所述调度队列为实时调度队列时,将所述调度队列中的请求消息通过预留通道发送,所述预留通道用于即时发送所述实时调度队列中的请求消息;
当所述调度队列为非实时调度队列时,将所述非调度队列中的请求消息根据优先级通过通用通道顺序发送。
14.一种请求消息管理装置,其特征在于,所述装置包括:
缓存模块,用于建立缓存队列,所述缓存队列数量至少为两个;
所述缓存模块,用于根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;
调度模块,用于从所述缓存队列中提取请求消息;
所述调度模块,用于将所提取的请求消息存储到统一缓存队列中;
所述调度模块,用于将所述统一缓存队列中的请求消息调度到对应的调度队列中;
所述调度模块,用于通过与所述调度队列对应的发送通道向终端发送。
15.一种计算机可读存储介质,其存储有可执行指令,其特征在于,可执行指令被处理器执行时实现以下的操作:
建立缓存队列,数量至少为两个;
根据所接收的请求消息的优先级,将所接收的请求消息存储到对应的缓存队列中;
从所述缓存队列中提取请求消息,将所提取的请求消息存储到统一缓存队列中;
将所述统一缓存队列中的请求消息调度到对应的调度队列中;
通过与所述调度队列对应的发送通道向终端发送。
CN201711425268.XA 2017-12-25 2017-12-25 请求消息管理方法及装置、存储介质 Active CN108200134B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201711425268.XA CN108200134B (zh) 2017-12-25 2017-12-25 请求消息管理方法及装置、存储介质
PCT/CN2018/116249 WO2019128535A1 (zh) 2017-12-25 2018-11-19 消息管理方法、设备及存储介质
US16/869,400 US10891177B2 (en) 2017-12-25 2020-05-07 Message management method and device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711425268.XA CN108200134B (zh) 2017-12-25 2017-12-25 请求消息管理方法及装置、存储介质

Publications (2)

Publication Number Publication Date
CN108200134A true CN108200134A (zh) 2018-06-22
CN108200134B CN108200134B (zh) 2021-08-10

Family

ID=62583921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711425268.XA Active CN108200134B (zh) 2017-12-25 2017-12-25 请求消息管理方法及装置、存储介质

Country Status (3)

Country Link
US (1) US10891177B2 (zh)
CN (1) CN108200134B (zh)
WO (1) WO2019128535A1 (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150753A (zh) * 2018-08-01 2019-01-04 新华三技术有限公司 消息分发方法及装置
CN109450805A (zh) * 2018-10-31 2019-03-08 百度在线网络技术(北京)有限公司 消息推送方法、装置以及系统
CN109445959A (zh) * 2018-10-17 2019-03-08 北京技德终端技术有限公司 一种传感器数据处理实时操作系统
WO2019128535A1 (zh) * 2017-12-25 2019-07-04 腾讯科技(深圳)有限公司 消息管理方法、设备及存储介质
CN110780984A (zh) * 2019-09-26 2020-02-11 苏州浪潮智能科技有限公司 一种基于优先级的请求调度方法及装置
CN110865845A (zh) * 2019-10-28 2020-03-06 福建天泉教育科技有限公司 提高接口访问效率的方法、存储介质
CN111565154A (zh) * 2020-07-15 2020-08-21 太平金融科技服务(上海)有限公司 图像识别请求处理方法、装置、计算机设备和存储介质
CN112286973A (zh) * 2020-11-19 2021-01-29 每日互动股份有限公司 数据消息的存储方法、装置、计算机设备及存储介质
CN113311728A (zh) * 2021-05-25 2021-08-27 南京国电南自维美德自动化有限公司 一种仿真模型与控制器通信的方法和系统
CN113535420A (zh) * 2020-04-20 2021-10-22 北京沃东天骏信息技术有限公司 一种消息处理方法和装置
CN113746815A (zh) * 2021-08-18 2021-12-03 南昌智能新能源汽车研究院 数据转发方法、装置、可读存储介质及控制终端
CN114157491A (zh) * 2021-12-02 2022-03-08 北京八分量信息科技有限公司 异构网络中的鉴权方法、装置及相关产品
CN115378142A (zh) * 2022-10-20 2022-11-22 安徽华速达电子科技有限公司 一种基于mqtt通讯方式电力负荷监测方法及系统

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076202A (zh) * 2020-01-06 2021-07-06 北京沃东天骏信息技术有限公司 消息状态确定方法、装置、计算机可读介质及电子设备
CN111986060B (zh) * 2020-07-28 2023-11-07 智维云图(上海)智能科技有限公司 一种消防设备触发状态的智能路由方法及系统
CN112231026A (zh) * 2020-09-15 2021-01-15 北京值得买科技股份有限公司 一种app弹框管理方法
CN112749031B (zh) * 2021-01-21 2024-03-01 广州虎牙科技有限公司 直播消息的处理方法、装置、设备及存储介质
CN113687928B (zh) * 2021-08-03 2024-03-22 广州华多网络科技有限公司 消息调度控制方法及其相应的装置、设备、介质
US11743200B2 (en) * 2021-08-23 2023-08-29 Netflix, Inc. Techniques for improving resource utilization in a microservices architecture via priority queues
CN114363269B (zh) * 2021-09-12 2023-07-25 苏州浪潮智能科技有限公司 一种消息传输方法、系统、设备以及介质
CN114331576A (zh) * 2021-12-30 2022-04-12 福建博思软件股份有限公司 基于高并发场景下的电子票号快速取票方法及存储介质
CN115297066B (zh) * 2022-07-23 2023-03-28 杭州半云科技有限公司 一种资源动态协同方法、装置、服务器及介质
CN115269234B (zh) * 2022-09-26 2023-01-10 华控清交信息科技(北京)有限公司 一种任务消息传输方法、装置及相关设备
CN116155831B (zh) * 2022-12-28 2024-05-03 河南辉煌科技股份有限公司 一种用于铁路生产管理系统的数据传输方法和系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083117A1 (en) * 2000-11-03 2002-06-27 The Board Of Regents Of The University Of Nebraska Assured quality-of-service request scheduling
CN1741497A (zh) * 2004-08-29 2006-03-01 华为技术有限公司 无线链路协议模块多实例数据业务的优先级服务方法
CN1925457A (zh) * 2005-08-31 2007-03-07 华为技术有限公司 一种用于多业务分组数据调度的装置和方法
CN101447943A (zh) * 2008-12-26 2009-06-03 杭州华三通信技术有限公司 队列调度系统及方法
CN105763481A (zh) * 2014-12-19 2016-07-13 北大方正集团有限公司 一种信息缓存方法及装置
US20160335305A1 (en) * 2015-05-14 2016-11-17 Walleye Software, LLC Computer data system data source refreshing using an update propagation graph
CN106547612A (zh) * 2016-10-18 2017-03-29 深圳怡化电脑股份有限公司 一种多任务处理方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272658B1 (en) * 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US20050047425A1 (en) * 2003-09-03 2005-03-03 Yonghe Liu Hierarchical scheduling for communications systems
US8203942B2 (en) * 2006-07-14 2012-06-19 Raytheon Company Communications resource management
US8117396B1 (en) * 2006-10-10 2012-02-14 Network Appliance, Inc. Multi-level buffer cache management through soft-division of a uniform buffer cache
CN101212389B (zh) * 2006-12-30 2010-06-23 华为技术有限公司 一种突发汇聚控制方法及相应的装置、通信设备
CN101159711B (zh) * 2007-11-27 2010-06-02 航天东方红卫星有限公司 自适应的实时消息订阅与发布系统及方法
US8689237B2 (en) * 2011-09-22 2014-04-01 Oracle International Corporation Multi-lane concurrent bag for facilitating inter-thread communication
CN108200134B (zh) * 2017-12-25 2021-08-10 腾讯科技(深圳)有限公司 请求消息管理方法及装置、存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083117A1 (en) * 2000-11-03 2002-06-27 The Board Of Regents Of The University Of Nebraska Assured quality-of-service request scheduling
CN1741497A (zh) * 2004-08-29 2006-03-01 华为技术有限公司 无线链路协议模块多实例数据业务的优先级服务方法
CN1925457A (zh) * 2005-08-31 2007-03-07 华为技术有限公司 一种用于多业务分组数据调度的装置和方法
CN101447943A (zh) * 2008-12-26 2009-06-03 杭州华三通信技术有限公司 队列调度系统及方法
CN105763481A (zh) * 2014-12-19 2016-07-13 北大方正集团有限公司 一种信息缓存方法及装置
US20160335305A1 (en) * 2015-05-14 2016-11-17 Walleye Software, LLC Computer data system data source refreshing using an update propagation graph
CN106547612A (zh) * 2016-10-18 2017-03-29 深圳怡化电脑股份有限公司 一种多任务处理方法及装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019128535A1 (zh) * 2017-12-25 2019-07-04 腾讯科技(深圳)有限公司 消息管理方法、设备及存储介质
US10891177B2 (en) 2017-12-25 2021-01-12 Tencent Technology (Shenzhen) Company Limited Message management method and device, and storage medium
CN109150753B (zh) * 2018-08-01 2022-04-22 新华三技术有限公司 消息分发方法及装置
CN109150753A (zh) * 2018-08-01 2019-01-04 新华三技术有限公司 消息分发方法及装置
CN109445959A (zh) * 2018-10-17 2019-03-08 北京技德终端技术有限公司 一种传感器数据处理实时操作系统
CN109450805A (zh) * 2018-10-31 2019-03-08 百度在线网络技术(北京)有限公司 消息推送方法、装置以及系统
CN110780984A (zh) * 2019-09-26 2020-02-11 苏州浪潮智能科技有限公司 一种基于优先级的请求调度方法及装置
CN110865845A (zh) * 2019-10-28 2020-03-06 福建天泉教育科技有限公司 提高接口访问效率的方法、存储介质
CN110865845B (zh) * 2019-10-28 2022-07-26 福建天泉教育科技有限公司 提高接口访问效率的方法、存储介质
CN113535420A (zh) * 2020-04-20 2021-10-22 北京沃东天骏信息技术有限公司 一种消息处理方法和装置
CN111565154A (zh) * 2020-07-15 2020-08-21 太平金融科技服务(上海)有限公司 图像识别请求处理方法、装置、计算机设备和存储介质
CN112286973A (zh) * 2020-11-19 2021-01-29 每日互动股份有限公司 数据消息的存储方法、装置、计算机设备及存储介质
CN113311728A (zh) * 2021-05-25 2021-08-27 南京国电南自维美德自动化有限公司 一种仿真模型与控制器通信的方法和系统
CN113746815A (zh) * 2021-08-18 2021-12-03 南昌智能新能源汽车研究院 数据转发方法、装置、可读存储介质及控制终端
CN113746815B (zh) * 2021-08-18 2023-06-06 南昌智能新能源汽车研究院 数据转发方法、装置、可读存储介质及控制终端
CN114157491A (zh) * 2021-12-02 2022-03-08 北京八分量信息科技有限公司 异构网络中的鉴权方法、装置及相关产品
CN115378142A (zh) * 2022-10-20 2022-11-22 安徽华速达电子科技有限公司 一种基于mqtt通讯方式电力负荷监测方法及系统

Also Published As

Publication number Publication date
US20200264942A1 (en) 2020-08-20
WO2019128535A1 (zh) 2019-07-04
CN108200134B (zh) 2021-08-10
US10891177B2 (en) 2021-01-12

Similar Documents

Publication Publication Date Title
CN108200134A (zh) 请求消息管理方法及装置、存储介质
CN108537543B (zh) 区块链数据的并行处理方法、装置、设备和存储介质
CN108989588B (zh) 呼叫分配方法、呼叫中心、电子设备和存储介质
CN107977268B (zh) 人工智能的异构硬件的任务调度方法、装置及可读介质
WO2021139438A1 (zh) 大数据资源处理方法、装置、终端及存储介质
CN110728455B (zh) 业务处理方法、业务处理装置、存储介质与电子设备
CN110837410A (zh) 任务调度方法、装置、电子设备及计算机可读存储介质
CN108111554B (zh) 一种访问队列的控制方法及装置
BRPI1101500A2 (pt) Casamento um-a-um em um centro de contato
BRPI1101520B1 (pt) Método, meio tangível não transitório que pode ser lido por computador e central de contato sem fila
CN110569298A (zh) 一种数据对接、可视化方法和系统
CN106991112B (zh) 信息查询方法及装置
CN109783227A (zh) 任务分配方法、装置、系统及计算机可读存储介质
US20180253432A1 (en) Question Pre-Processing in a Question and Answer System
WO2019047568A1 (zh) 用户呼叫处理方法、装置、计算机设备和存储介质
WO2021129240A1 (zh) 用于语音对话平台的技能调度方法及装置
CN112740323B (zh) 一种语音理解方法及装置
CN115600852A (zh) 项目分配方法、终端及存储介质
CN115169906A (zh) 客服分配方法、装置、计算机设备及存储介质
WO2023035524A1 (zh) 基于意图识别的流程节点跳转方法、装置、设备及介质
CN110390577A (zh) 订单的分配方法及装置
CN106648874B (zh) 一种批量任务的处理方法及装置
US11184248B1 (en) Network resource allocation using forecasted network traffic patterns selected utilizing network topology
CN114443290A (zh) 资源数据处理方法、装置、存储介质及电子设备
US11055156B2 (en) Processing of a message stream

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