WO2021022710A1 - 消息队列处理方法、装置、电子设备及计算机非易失性可读存储介质 - Google Patents
消息队列处理方法、装置、电子设备及计算机非易失性可读存储介质 Download PDFInfo
- Publication number
- WO2021022710A1 WO2021022710A1 PCT/CN2019/117686 CN2019117686W WO2021022710A1 WO 2021022710 A1 WO2021022710 A1 WO 2021022710A1 CN 2019117686 W CN2019117686 W CN 2019117686W WO 2021022710 A1 WO2021022710 A1 WO 2021022710A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- message queue
- monitoring process
- new short
- blockchain node
- connection process
- Prior art date
Links
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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
本申请要求2019年08月02日递交、发明名称为“消息队列处理方法及装置、电子设备、存储介质”的中国专利申请201910713837.3的优先权,在此通过引用将其全部内容合并于此。
本申请涉及通信技术领域,尤其涉及一种消息队列处理方法、装置、电子设备及计算机非易失性可读存储介质。
随着科技的迅速发展,区块链技术越来越受到重视。区块链技术(分布式账本技术)是一种去中心化的分布式数据库技术,具有公开透明、不可篡改、可信任等多种特点。
目前,区块链节点在处理消息队列时,通常是开启一长连接进程来进行处理,当检测到消息队列中出现待处理消息时,对该消息进行处理。当同时有大量消息进入消息队列中时,可通过该长连接进程对消息队列中的消息逐一地进行处理,本申请的发明人意识到,这样的处理方法会造成消息的堆积,降低处理效率。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
为了解决上述技术问题,本申请的一个目的在于提供一种消息队列处理方法、装置、电子设备及计算机非易失性可读存储介质。
其中,本申请所采用的技术方案为:
第一方面,一种消息队列处理方法,包括:获取预设标志,并根据所述预设标志判断是否需要在区块链节点启动监控进程;如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取区块链节点中消息队列对应的作业信息;根据所述作业信息判断是否需要启动一新的短连接进程;如果确定需要启动一新的短连接进程时,则启动一新的短连接进程以根据已启动的长连接进程以及所述新的短连接进程对消息队列进行处理。
第二方面,一种消息队列处理装置,包括:标志判断单元,用于获取预设标志,并根据所述预设标志判断是否需要在区块链节点启动监控进程;作业信息获取单元,用于如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取区块链节点中消息队列对应的作业信息;判断单元,用于根据所述作业信息判断是否需要启动一新的短连接进程;启动单元,用于如果确定需要启动一新的短连接进程时,则启动一新的短连接进程以根据已启动的长连接进程以及所述新的短连接进程对消息队列进行处理。
第三方面,一种电子设备,包括:处理器;以及
存储器,用于存储所述处理器的消息队列处理程序;其中,所述处理器配置为经由执行所述消息队列处理程序来执行如上所述的消息队列处理方法。
第四方面,一种计算机非易失性可读存储介质,其上存储有消息队列处理程序,其中,所述消息队列处理程序被处理器执行时实现如上所述的消息队列处理方法。
第五方面,一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如本申请实施例第一方面所述的方法。
在上述技术方案中,通过监控进程启动新的短连接进程,根据新的短连接进程以及已启动的长连接进程处理消息队列,避免仅有长连接进程逐个处理消息队列中的消息,造成消息堆积的问题,提高了消息的处理效率;另一方面,监控进程通过消息队列的作业信息判断是否启动新的短连接进程,避免启动过多的短连接进程占用运算资源的问题,加快消息处理速度,提升运算效率,进而至少在一定程度上克服现有技术中区块链节点的消息队列中的长连接进程或者大量短连接进程降低处理效率的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并于说明书一起用于解释本申请的原理。
图1示意性示出了根据本申请的一些实施例的跨区块链交互系统的示意图。
图2示意性示出了根据本申请的一些实施例的消息队列处理方法的示意图。
图3示意性示出了根据本申请的一些实施例的消息队列处理流程的示意图。
图4示意性示出一种消息队列处理装置的方框图。
图5示出根据示例性实施例的用于实现上述消息队列处理方法的电子设备的框图。
图6示出根据示例性实施例的用于实现上述消息队列处理方法的计算机非易失性可读存储介质的示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
此外,附图仅为示意性图解,并非一定是按比例绘制。附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
现有的技术方案中,提供了一种跨区块链交互系统以及通信方案,例如参考图1所示,图1示意性示出了根据本申请的一些实施例的跨区块链交互系统的示意图。在该技术方案中,订阅客户端对应于第一区块链内的区块链节点,用于维护区块链节点对应的消息队列,所述消息队列包含所述区块链节点订阅的消息。发布客户端对应于所述第二区块链,用于获取并发布所述第二区块链产生的消息。跨链交互端用于获取第一区块链内的区块链节点的订阅条件,并在所述消息队列的末尾包含满足所述订阅条件的消息时,向发布客户端请求满足所述订阅条件的消息并发送至所述订阅客户端,以更新至所述消息队列中,从而第一区块链内的区块链节点可以从该消息队列中拉去消息。
该现有技术方案通过在订阅客户端对应的区块链节点构造消息队列,为区块链节点之间的通信提供了松耦合的方法。消息队列的应用程序接口(Application
Program Interface, API)可以被提供给新的或现存的区块链节点,通过消息的发送来实现各区块链节点之间的信息交换功能。订阅客户端的区块链节点在处理消息队列时,通常是开启一长连接进程来进行处理,当检测到消息队列中出现待处理消息时,对该消息进行处理。当同时有大量消息进入消息队列中时,可通过该长连接进程对消息队列中的消息逐一地进行处理。但这样的处理方法会造成消息的堆积,降低处理效率。或者,也可以启动一个或多个短连接进程,并行地处理消息队列中的消息。但短连接进程本身也会占用区块链节点的CPU资源且消耗内存,当同时开启较多的短连接进程时反而会进一步降低效率,影响长连接进程的效率。
基于此,在本示例实施例中,首先提供了一种消息队列处理方法,图2示意性示出了根据本申请的一些实施例的消息队列处理方法的示意图。参考图2所示,该消息队列处理方法可以包括以下步骤:
步骤S210,获取预设标志,并根据所述预设标志判断是否需要在区块链节点启动监控进程;
步骤S220,如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取区块链节点中消息队列对应的作业信息;
步骤S230,根据所述作业信息判断是否需要启动一新的短连接进程;
步骤S240,如果确定需要启动一新的短连接进程时,则启动一新的短连接进程以根据已启动的长连接进程以及所述新的短连接进程对消息队列进行处理。
根据本示例实施例中的消息队列处理方法,一方面,通过监控进程启动新的短连接进程,根据新的短连接进程以及已启动的长连接进程处理消息队列,避免仅有长连接进程逐个处理消息队列中的消息,造成消息堆积的问题,提高了消息的处理效率;另一方面,监控进程通过消息队列的作业信息判断是否启动新的短连接进程,避免启动过多的短连接进程占用运算资源的问题,加快消息处理速度,提升运算效率。
下面,将对本示例实施例中的消息队列处理方法进行进一步的说明。
在步骤S210中,获取预设标志,并根据所述预设标志判断是否需要在区块链节点启动监控进程。
在本申请的一些示例实施例中,预设标志可以是指预先设置的用以触发执行某事件的标识信息,例如预设标志可以为是(或者YES或者TRUE),则判定启动监控进程,预设标志可以为否(或者NO或者FALSE),则判定不启动监控进程(本示例实施例中在判定不启动监控进程时,直接执行长连接进程)。当然,预设标志还可以是其他预先设置的标识信息,本示例实施例对此不做特殊限定。
具体的,预先构建预设标志,并根据用户对预设标志的设置确定是否需要在区块链节点启动监控进程。系统提前构建一预设标志,根据用户对该预设标志的设置来判断是否启动一监控进程或者执行长连接进程(不启动监控进程)。例如,系统检测到用户设置预设标志为是(或者YES或者TRUE),则在订阅客户端对应的区块链节点启动一监控进程。用户能够根据实际需求通过预设标志启动监控进程或者执行长连接进程对消息队列进行处理,以达到用户期望的结果,操作简单,提升用户的使用体验。
具体的,基于监控进程获取消息队列对应的查询接口,并根据查询接口获取消息队列对应的作业信息。该作业信息包括消息队列的深度、消息队列当前所有连接进程的数目状态以及区块链节点对应客户端(订阅客户端)的运算处理器利用率。监控进程通过消息队列的查询接口(不同类型的消息队列模型对应的查询接口名称可能会有所不同;如果没有查询接口,开发人员也可自行配置查询接口)查询并获取部分前述消息队列信息。例如,查询并获取消息队列中消息的数目信息,根据数目信息确定当前消息队列的深度。前述所有连接进程即可以包括长连接进程和所有短连接进程,或者也可以仅为所有短连接进程,因此,可以查询并获取所有连接进程的数目以及状态(如运行/停止)。订阅客户端CPU的利用率等节点状态信息则可以通过订阅客户端对应的区块链节点的操作系统的接口查询获取。
在步骤S220中,如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取区块链节点中消息队列对应的作业信息。
在本申请的一些示例实施例中,消息队列(MQ)可以是指一种应用程序对应用程序的通信方法。当系统确定用户设置的预设标志为是(或者YES或者TRUE)时,则在订阅客户端对应的区块链节点启动一监控进程。监控进程在目标存储位置(订阅客户端的存储装置)处获取消息队列模型对应的查询接口(或者获取开发人员上传的查询接口),并通过该查询接口获取消息队列对应的作业信息,例如监控进程通过查询接口获取消息队列的深度、消息队列当前所有连接进程的数目状态以及区块链节点对应客户端(订阅客户端)的运算处理器利用率等作业信息。
可选的,如果判定不需要在区块链节点启动所述监控进程,则直接执行长连接进程以根据长连接进程对消息队列进行处理。长连接进程可以是指发送端和接收端建立连接后,可以保持socket通道进行多次通信,不需要计算Socket通道(Socket通道可以是指进程间的通信方式,例如Java的EJB调用,Web Service服务等。Socket是最常用的通讯技术,几乎所有的系统、语言都支持,Socket也是面向网络的,通信的两方可以跨越IP网络进行传输)建立和关闭的时间。如果预设标志的设置表示不需要在区块链节点启动所述监控进程,则直接执行长连接进程对消息队列进行处理。通过设置预设标志选择是否在区块链节点启动所述监控进程,能够增加消息队列处理的灵活性,且根据不同情况下的区块链节点设置不同的处理方式,提高系统的工作效率。
在步骤S230中,根据所述作业信息判断是否需要启动一新的短连接进程。
在本申请的一些示例实施例中,监控进程根据获取的作业信息判断是否需要启动一新的短连接进程,例如监控进程根据获取的消息队列的深度、消息队列当前所有连接进程的数目状态以及区块链节点对应客户端(订阅客户端)的运算处理器利用率等作业信息判断是否需要启动一新的短连接进程。
具体的,基于监控进程判断消息队列的深度是否超过新的短连接进程启动阈值;如果消息队列的深度未超过所述新的短连接进程启动阈值,则结束本轮监控进程。其中,新的短连接进程启动阈值可以是指一预先设定的固定值,也可以是根据消息队列处理情况和/或CPU利用率等情况动态设置的阈值,具体大小需要根据实际情况测试后确定。例如,系统根据相关信息确定新的短连接进程启动阈值为10(即确定此次作业任务最多启动10个新的短连接进程,当启动的新的短连接进程超过10个时会影响系统处理消息的效率),而消息队列的深度为9,判定此时消息队列的深度未超过所述新的短连接进程启动阈值(即当前消息队列的深度不需要启动新的短连接进程),监控进程结束本轮的监控。
进一步的,监控进程如果判定消息队列的深度超过新的短连接进程启动阈值,则继续判断消息队列当前所有连接进程的数目状态是否超过作业总数阈值;当确定消息队列当前所有连接进程的数目状态超过作业总数阈值时,结束本轮监控进程。其中,作业总数阈值可以是一预先设定的固定值,也可以是根据消息队列处理情况和/或CPU利用率等情况动态设置的阈值,本申请实施例不以此为限。此外,消息队列当前所有连接进程的数目状态可以包括所有长连接进程和所有短连接进程,当然,也可以仅为所有短连接进程,因此对于不同的情况,作业总数阈值的设定也会有不同,本申请在此不做特殊限定。如果消息队列的深度超过新的短连接进程启动阈值(即当前消息队列的深度需要启动新的短连接进程)时,继续判断消息队列当前所有连接进程的数目状态是否超过作业总数阈值,当确定所述消息队列当前所有连接进程的数目状态超过所述作业总数阈值时,监控进程结束本轮的监控。
进一步的,监控进程如果确定消息队列当前所有连接进程的数目状态未超过作业总数阈值时,则继续判断区块链节点对应客户端的运算处理器利用率是否超过运算处理器利用率阈值;当确定区块链节点对应客户端的运算处理器利用率超过所述运算处理器利用率阈值时,结束监控进程。其中,CPU利用率阈值可以是一预先设定的固定值,也可以是根据消息队列处理情况和/或CPU利用率等情况动态设置的阈值,本申请对此不做特殊限定。如果监控进程确定消息队列当前所有连接进程的数目状态未超过作业总数阈值时,则继续判断区块链节点对应客户端的运算处理器利用率是否超过运算处理器利用率阈值,当确定区块链节点对应客户端的运算处理器利用率超过所述运算处理器利用率阈值时,监控进程结束本轮的监控。例如,运算处理器利用率阈值为80%(可以认为当运算处理器利用率超过80%时会影响区块链节点的工作效率),而区块链节点对应客户端的运算处理器利用率为82%时,可以认为区块链节点对应客户端的运算处理器利用率超过所述运算处理器利用率阈值(即此时系统确定不能继续占用区块链节点对应客户端的运算处理器的资源,但是启动新的短连接进程会占用运算处理器的资源),监控进程结束本轮的监控。当确定区块链节点对应客户端的运算处理器利用率未超过运算处理器利用率阈值时,启动一新的短连接进程。
需要说明的是,前述监控进程根据获取的作业信息判断是否需要启动一新的短连接进程的判断过程,仅是示意性的,也可以是其他判断顺序或者同时进行判断,本申请对此不做特殊限定。
参考图3所示,图3示意性示出了根据本申请的一些实施例的消息队列处理流程的示意图,下面对图3所示的步骤进行详细说明:
步骤S310,系统根据用户对预设标志的设置判断是否在区块链节点启动监控进程,当确定预设标志的设置为是(或者YES或者TRUE)时执行步骤S330;当确定预设标志的设置为否(或者NO或者FALSE)时执行步骤S320。
步骤S320,在区块链节点执行长连接进程。
步骤S330,监控进程判断消息队列(MQ)的深度是否超过新的短连接进程启动阈值,当确定消息队列的深度超过所述新的短连接进程启动阈值时执行步骤S340;当确定消息队列的深度未超过所述新的短连接进程启动阈值时监控进程结束本轮的监控。
步骤S340,监控进程判断消息队列当前所有连接进程的数目状态是否超过作业总数阈值,当确定消息队列当前所有连接进程的数目状态未超过作业总数阈值时执行步骤S350;当确定消息队列当前所有连接进程的数目状态超过作业总数阈值时监控进程结束本轮的监控。
步骤S350,监控进程判断区块链节点对应客户端的运算处理器利用率是否超过运算处理器利用率阈值,当确定区块链节点对应客户端的运算处理器利用率未超过运算处理器利用率阈值时,执行步骤S360;当确定区块链节点对应客户端的运算处理器利用率超过所述运算处理器利用率阈值时监控进程结束本轮的监控。
步骤S360,启动一新的短连接进程。
继续参考图2所示,在步骤S240中,如果确定需要启动一新的短连接进程时,则启动一新的短连接进程以根据已启动的长连接进程以及所述新的短连接进程对消息队列进行处理。
在本申请的一些示例实施例中,短连接进程可以是指是指发送端和接收端建立连接后,仅可以保持Socket通道进行一次通信,然后就关闭Socket通道。短连接进程可以判断消息队列中是否还有消息待处理,如果还有消息待处理,则对消息队列中的消息进行处理;否则,结束短连接进程。长连接进程可以是指发送端和接收端建立连接后,可以保持Socket通道进行多次通信,不需要计算Socket通道建立和关闭的时间。长连接进程可以判断消息队列中是否还有消息待处理,如果还有消息待处理,则判断是否允许获取消息队列中的消息:如果允许获取,则对消息队列中的消息进行处理;如果不允许获取,结束长连接进程;如果没有消息待处理,在可以进入无限等待模式。当监控进程确定需要启动一新的短连接进程时,则启动一新的短连接进程,系统根据已启动的长连接进程以及新的短连接进程对消息队列进行处理。
需要说明的是,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
此外,在本示例实施例中,还提供了一种消息队列处理装置。参照图4所示,该消息队列处理装置400包括:标志判断单元410配置为获取预设标志,并根据所述预设标志判断是否需要在区块链节点启动监控进程;作业信息获取单元420配置为如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取消息队列对应的作业信息;判断单元430配置为根据所述作业信息判断是否需要启动一新的短连接进程;启动单元440配置为如果确定需要启动一新的短连接进程时,则启动一新的短连接进程以根据已启动的长连接进程以及所述新的短连接进程对消息队列进行处理。
在本申请的一种示例性实施例中,基于前述方案,作业信息获取单元420还被配置为:如果判定不需要在所述区块链节点启动所述监控进程,则直接执行长连接进程以根据所述长连接进程对消息队列进行处理。
在本申请的一种示例性实施例中,基于前述方案,获取单元420被配置为:基于所述监控进程,获取所述消息队列对应的查询接口;根据所述查询接口获取所述消息队列对应的作业信息。
在本申请的一种示例性实施例中,基于前述方案,所述作业信息包括消息队列的深度、消息队列当前所有连接进程的数目状态以及区块链节点对应客户端的运算处理单元利用率。
在本申请的一种示例性实施例中,基于前述方案,判断单元430被配置为:基于所述监控进程,判断所述消息队列的深度是否超过新的短连接进程启动阈值;如果所述消息队列的深度未超过所述新的短连接进程启动阈值,则结束所述监控进程。
在本申请的一种示例性实施例中,基于前述方案,判断单元430被配置为:基于所述监控进程,如果所述消息队列的深度超过所述新的短连接进程启动阈值,则继续判断所述消息队列当前所有连接进程的数目状态是否超过作业总数阈值;当确定所述消息队列当前所有连接进程的数目状态超过所述作业总数阈值时,结束所述监控进程。
在本申请的一种示例性实施例中,基于前述方案,判断单元430被配置为:基于所述监控进程,如果确定所述消息队列当前所有连接进程的数目状态未超过作业总数阈值时,则继续判断所述区块链节点对应客户端的运算处理器利用率是否超过运算处理器利用率阈值;如果确定所述区块链节点对应客户端的运算处理器利用率超过所述运算处理器利用率阈值,则结束所述监控进程;如果确定所述区块链节点对应客户端的运算处理器利用率未超过所述运算处理器利用率阈值,则启动一新的短连接进程。
在本申请的一种示例性实施例中,基于前述方案,消息队列处理装置400被配置为:判断消息队列当前所有连接进程的状态是否均处于锁状态或者消息等待状态;如果确定所述消息队列当前所有连接进程的状态均处于锁状态或者消息等待状态,则给所述消息队列发送警告信息以使所述队列消息向外部发送通知信息。
上述中消息队列处理装置各模块的具体细节已经在对应的消息队列处理方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了消息队列处理装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本申请的示例性实施例中,还提供了一种能够实现上述消息队列处理方法的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
下面参照图5来描述根据本申请的这种实施例的电子设备500。图5所示的电子设备500仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:上述至少一个处理单元510、上述至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530、显示单元540。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施例的步骤。例如,所述处理单元510可以执行如图2中所示的步骤S210,获取预设标志,并根据所述预设标志判断是否需要在区块链节点启动监控进程;步骤S220,如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取区块链节点中消息队列对应的作业信息;步骤S230,根据所述作业信息判断是否需要启动一新的短连接进程;步骤S240,如果确定需要启动一新的短连接进程时,则启动一新的短连接进程以根据已启动的长连接进程以及所述新的短连接进程对所述消息队列进行处理。
存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)521和/或高速缓存存储单元522,还可以进一步包括只读存储单元(ROM)523。
存储单元520还可以包括具有一组(至少一个)程序模块525的程序/实用工具524,这样的程序模块525包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备500也可以与一个或多个外部设备570(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550进行。并且,电子设备500还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器560通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施例的方法。
在本申请的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施例的步骤。
参考图6所示,描述了根据本申请的实施例的用于实现上述消息队列处理方法的计算机非易失性可读存储介质600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请的计算机非易失性可读存储介质不限于此,在本文件中,计算机非易失性可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。计算机非易失性可读存储介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施例的方法。
根据本申请一个实施例,还提供了一种计算机程序产品,计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,计算机程序可操作来使计算机执行如本申请上述实施例中的消息队列处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施例。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (22)
- 一种消息队列处理方法,包括:获取预设标志,并根据所述预设标志判断是否需要在区块链节点启动监控进程;如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取区块链节点中消息队列对应的作业信息;根据所述作业信息判断是否需要启动一新的短连接进程;如果确定需要启动一新的短连接进程时,则启动一新的短连接进程以根据已启动的长连接进程以及所述新的短连接进程对所述消息队列进行处理。
- 根据权利要求1所述的消息队列处理方法,其中,如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取区块链节点中消息队列对应的作业信息还包括:如果判定不需要在所述区块链节点启动所述监控进程,则直接执行长连接进程以根据所述长连接进程对消息队列进行处理。
- 根据权利要求1所述的消息队列处理方法,其中,通过所述监控进程获取消息队列对应的作业信息包括:基于所述监控进程,获取所述消息队列对应的查询接口;根据所述查询接口获取所述消息队列对应的作业信息。
- 根据权利要求1所述的消息队列处理方法,其中,所述作业信息包括消息队列的深度,所述根据所述作业信息判断是否需要启动一新的短连接进程包括:基于所述监控进程,判断所述消息队列的深度是否超过新的短连接进程启动阈值;如果所述消息队列的深度未超过所述新的短连接进程启动阈值,则结束所述监控进程。
- 根据权利要求4所述的消息队列处理方法,其中,所述作业信息还包括所述消息队列当前所有连接进程的数目状态,所述根据所述作业信息判断是否需要启动一新的短连接进程包括:基于所述监控进程,如果所述消息队列的深度超过所述新的短连接进程启动阈值,则继续判断所述消息队列当前所有连接进程的数目状态是否超过作业总数阈值;当确定所述消息队列当前所有连接进程的数目状态超过所述作业总数阈值时,结束所述监控进程。
- 根据权利要求5所述的消息队列处理方法,其中,所述作业信息还包括区块链节点对应客户端的运算处理器利用率,所述根据所述作业信息判断是否需要启动一新的短连接进程包括:基于所述监控进程,如果确定所述消息队列当前所有连接进程的数目状态未超过作业总数阈值时,则继续判断所述区块链节点对应客户端的运算处理器利用率是否超过运算处理器利用率阈值;如果确定所述区块链节点对应客户端的运算处理器利用率超过所述运算处理器利用率阈值,则结束所述监控进程;如果确定所述区块链节点对应客户端的运算处理器利用率未超过所述运算处理器利用率阈值时,则启动一新的短连接进程。
- 根据权利要求5所述的消息队列处理方法,其中,所述作业信息还包括区块链节点对应客户端的运算处理器利用率,所述根据所述作业信息判断是否需要启动一新的短连接进程包括:基于所述监控进程,如果确定所述消息队列当前所有连接进程的数目状态未超过作业总数阈值时,则继续判断所述区块链节点对应客户端的运算处理器利用率是否超过运算处理器利用率阈值;如果确定所述区块链节点对应客户端的运算处理器利用率超过所述运算处理器利用率阈值,则结束所述监控进程;如果确定所述区块链节点对应客户端的运算处理器利用率未超过所述运算处理器利用率阈值时,则启动一新的短连接进程。
- 一种消息队列处理装置,其中,包括:标志判断单元,配置为获取预设标志,并根据所述预设标志在区块链节点执行目标事件;其中,所述目标事件包括启动监控进程;作业信息获取单元,配置为如果确定所述目标事件为启动监控进程,则通过所述监控进程获取消息队列对应的作业信息;判断单元,配置为根据所述作业信息判断是否需要启动一新的短连接进程;启动单元,配置为如果确定需要启动一新的短连接进程时,则启动一新的短连接进程以根据已启动的长连接进程以及所述新的短连接进程对消息队列进行处理。
- 根据权利要求8所述的装置,所述作业信息获取单元被配置为:如果判定不需要在所述区块链节点启动所述监控进程,则直接执行长连接进程以根据所述长连接进程对消息队列进行处理。
- 根据权利要求8所述的装置,所述作业信息获取单元被配置为:基于所述监控进程,获取所述消息队列对应的查询接口;根据所述查询接口获取所述消息队列对应的作业信息。
- 根据权利要求8所述的装置,所述判断单元被配置为:基于所述监控进程,判断所述消息队列的深度是否超过新的短连接进程启动阈值;如果所述消息队列的深度未超过所述新的短连接进程启动阈值,则结束所述监控进程。
- 根据权利要求8所述的装置,所述判断单元被配置为:基于所述监控进程,判断所述消息队列的深度是否超过新的短连接进程启动阈值;如果所述消息队列的深度未超过所述新的短连接进程启动阈值,则结束所述监控进程。
- 根据权利要求8所述的装置,所述判断单元被配置为:基于所述监控进程,如果所述消息队列的深度超过所述新的短连接进程启动阈值,则继续判断所述消息队列当前所有连接进程的数目状态是否超过作业总数阈值;当确定所述消息队列当前所有连接进程的数目状态超过所述作业总数阈值时,结束所述监控进程。
- 根据权利要求8所述的装置,所述判断单元被配置为:基于所述监控进程,如果确定所述消息队列当前所有连接进程的数目状态未超过作业总数阈值时,则继续判断所述区块链节点对应客户端的运算处理单元利用率是否超过运算处理单元利用率阈值;如果确定所述区块链节点对应客户端的运算处理单元利用率超过所述运算处理单元利用率阈值,则结束所述监控进程;如果确定所述区块链节点对应客户端的运算处理单元利用率未超过所述运算处理单元利用率阈值,则启动一新的短连接进程。
- 一种电子设备,其中,包括:处理器;以及存储器,用于存储所述处理器的消息队列处理程序;其中,所述处理器配置为经由执行所述消息队列处理程序来执行以下处理:获取预设标志,并根据所述预设标志判断是否需要在区块链节点启动监控进程;如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取区块链节点中消息队列对应的作业信息;根据所述作业信息判断是否需要启动一新的短连接进程;如果确定需要启动一新的短连接进程时,则启动一新的短连接进程以根据已启动的长连接进程以及所述新的短连接进程对所述消息队列进行处理。
- 根据权利要求15所述的电子设备,其中,如果判定需要在所述区块链节点启动所述监控进程,则通过所述监控进程获取区块链节点中消息队列对应的作业信息还包括:如果判定不需要在所述区块链节点启动所述监控进程,则直接执行长连接进程以根据所述长连接进程对消息队列进行处理。
- 根据权利要求15所述的电子设备,其中,通过所述监控进程获取消息队列对应的作业信息包括:基于所述监控进程,获取所述消息队列对应的查询接口;根据所述查询接口获取所述消息队列对应的作业信息。
- 根据权利要求15所述的电子设备,其中,还包括:所述作业信息包括消息队列的深度,所述根据所述作业信息判断是否需要启动一新的短连接进程包括:基于所述监控进程,判断所述消息队列的深度是否超过新的短连接进程启动阈值;如果所述消息队列的深度未超过所述新的短连接进程启动阈值,则结束所述监控进程。
- 根据权利要求15所述的电子设备,其中,所述作业信息还包括所述消息队列当前所有连接进程的数目状态,所述根据所述作业信息判断是否需要启动一新的短连接进程包括:基于所述监控进程,如果所述消息队列的深度超过所述新的短连接进程启动阈值,则继续判断所述消息队列当前所有连接进程的数目状态是否超过作业总数阈值;当确定所述消息队列当前所有连接进程的数目状态超过所述作业总数阈值时,结束所述监控进程。
- 根据权利要求15所述的电子设备,其中,所述作业信息还包括区块链节点对应客户端的运算处理器利用率,所述根据所述作业信息判断是否需要启动一新的短连接进程包括:基于所述监控进程,如果确定所述消息队列当前所有连接进程的数目状态未超过作业总数阈值时,则继续判断所述区块链节点对应客户端的运算处理器利用率是否超过运算处理器利用率阈值;如果确定所述区块链节点对应客户端的运算处理器利用率超过所述运算处理器利用率阈值,则结束所述监控进程;如果确定所述区块链节点对应客户端的运算处理器利用率未超过所述运算处理器利用率阈值时,则启动一新的短连接进程。
- 根据权利要求15所述的电子设备,其中,还包括:判断消息队列当前所有连接进程的状态是否均处于锁状态或者消息等待状态;如果确定所述消息队列当前所有连接进程的状态均处于锁状态或者消息等待状态,则给所述消息队列发送警告信息以使所述队列消息向外部发送通知信息。
- 一种计算机非易失性可读存储介质,其上存储有消息队列处理程序,其中,所述消息队列处理程序被处理器执行时实现权利要求1至7任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910713837.3 | 2019-08-02 | ||
CN201910713837.3A CN110659142A (zh) | 2019-08-02 | 2019-08-02 | 消息队列处理方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021022710A1 true WO2021022710A1 (zh) | 2021-02-11 |
Family
ID=69036884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/117686 WO2021022710A1 (zh) | 2019-08-02 | 2019-11-12 | 消息队列处理方法、装置、电子设备及计算机非易失性可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110659142A (zh) |
WO (1) | WO2021022710A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032207A (zh) * | 2021-03-02 | 2021-06-25 | 广州虎牙科技有限公司 | 应用进程的监控方法、装置、电子设备及存储介质 |
CN113138868A (zh) * | 2021-04-28 | 2021-07-20 | 北京沃东天骏信息技术有限公司 | 一种消息处理方法和装置 |
CN114050983A (zh) * | 2021-10-26 | 2022-02-15 | 中国电信股份有限公司 | 流量自适应采集方法及装置、存储介质及电子设备 |
CN114500318A (zh) * | 2022-02-11 | 2022-05-13 | 中国工商银行股份有限公司 | 一种批量作业监控方法及装置、设备及介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708586B (zh) * | 2020-06-22 | 2023-06-20 | 平安养老保险股份有限公司 | 应用启动配置项加载方法、装置、计算机设备和存储介质 |
CN111930443B (zh) * | 2020-10-15 | 2020-12-18 | 杭州云链趣链数字科技有限公司 | 基于区块链的运维方法、系统、计算机设备和存储介质 |
CN113704348B (zh) * | 2021-07-06 | 2023-06-30 | 中国科学院计算技术研究所数字经济产业研究院 | 基于分布式账本的信用积分管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170048120A1 (en) * | 2015-08-11 | 2017-02-16 | Txmq, Inc. | Systems and Methods for WebSphere MQ Performance Metrics Analysis |
CN106886457A (zh) * | 2015-12-16 | 2017-06-23 | 泰康保险集团股份有限公司 | 消息队列处理方法及装置 |
CN109670950A (zh) * | 2018-10-29 | 2019-04-23 | 平安科技(深圳)有限公司 | 基于区块链的交易监听方法、装置、设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018112948A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
CN109995666A (zh) * | 2019-04-12 | 2019-07-09 | 深圳市元征科技股份有限公司 | 一种消息传输方法及相关装置 |
-
2019
- 2019-08-02 CN CN201910713837.3A patent/CN110659142A/zh active Pending
- 2019-11-12 WO PCT/CN2019/117686 patent/WO2021022710A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170048120A1 (en) * | 2015-08-11 | 2017-02-16 | Txmq, Inc. | Systems and Methods for WebSphere MQ Performance Metrics Analysis |
CN106886457A (zh) * | 2015-12-16 | 2017-06-23 | 泰康保险集团股份有限公司 | 消息队列处理方法及装置 |
CN109670950A (zh) * | 2018-10-29 | 2019-04-23 | 平安科技(深圳)有限公司 | 基于区块链的交易监听方法、装置、设备和存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032207A (zh) * | 2021-03-02 | 2021-06-25 | 广州虎牙科技有限公司 | 应用进程的监控方法、装置、电子设备及存储介质 |
CN113138868A (zh) * | 2021-04-28 | 2021-07-20 | 北京沃东天骏信息技术有限公司 | 一种消息处理方法和装置 |
CN113138868B (zh) * | 2021-04-28 | 2024-04-05 | 北京沃东天骏信息技术有限公司 | 一种消息处理方法和装置 |
CN114050983A (zh) * | 2021-10-26 | 2022-02-15 | 中国电信股份有限公司 | 流量自适应采集方法及装置、存储介质及电子设备 |
CN114050983B (zh) * | 2021-10-26 | 2023-11-07 | 中国电信股份有限公司 | 流量自适应采集方法及装置、存储介质及电子设备 |
CN114500318A (zh) * | 2022-02-11 | 2022-05-13 | 中国工商银行股份有限公司 | 一种批量作业监控方法及装置、设备及介质 |
CN114500318B (zh) * | 2022-02-11 | 2024-02-06 | 中国工商银行股份有限公司 | 一种批量作业监控方法及装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110659142A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021022710A1 (zh) | 消息队列处理方法、装置、电子设备及计算机非易失性可读存储介质 | |
WO2023109138A1 (zh) | Linux系统中启动安卓应用的方法、装置和电子设备 | |
WO2021259013A1 (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
WO2017041398A1 (zh) | 数据传输方法和装置 | |
WO2019153488A1 (zh) | 服务配置管理方法、装置、存储介质和服务器 | |
US8631414B2 (en) | Distributed resource management in a portable computing device | |
US20150067146A1 (en) | Custom correlation of a distributed business transaction | |
WO2019109923A1 (zh) | 消息处理方法及系统、存储介质、电子设备 | |
US20190173960A1 (en) | Method, device and computer program product for protocol selection | |
WO2012149746A1 (zh) | 一种串口波特率配置方法及相关设备、系统 | |
KR20210083222A (ko) | 음성 데이터 처리 방법, 장치, 기기 및 저장매체 | |
US8413168B2 (en) | Method, apparatus and computer program product for providing an event scheme for context models | |
WO2022257604A1 (zh) | 一种用户标签的确定方法和装置 | |
JP6088531B2 (ja) | ローカルサーバーを通じたローカルクライアントアプリケーションのためのイベントサービス | |
EP3723343B1 (en) | Resource processing method and system, storage medium and electronic device | |
EP2751687B1 (en) | Method and system for managing parallel resource requests in a portable computing device | |
CN110893616B (zh) | 一种远程控制方法、装置、计算机设备和存储介质 | |
TWI815098B (zh) | Web請求處理方法、裝置、電子設備以及內儲程式之電腦可讀取記錄媒體 | |
CN110990490B (zh) | 区块链网络中区块链的入账方法、装置、设备及介质 | |
CN109167808B (zh) | 一种数据处理方法、装置和系统 | |
CN116436855B (zh) | 数据信息处理方法、装置、电子设备和介质 | |
US11550624B2 (en) | Method, device, and computer program product for executing a job in an application system | |
CN113495794B (zh) | 一种Android系统的模块桥接方法、装置、电子设备及存储介质 | |
CN113778504B (zh) | 一种发布方法、发布系统及路由装置 | |
CN116931918A (zh) | 接口生成方法、装置、存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19940206 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19940206 Country of ref document: EP Kind code of ref document: A1 |