队列消息的操作方法、装置和存储介质制造方法及图纸

技术编号:20914960 阅读:22 留言:0更新日期:2019-04-20 09:23
本发明专利技术公开了一种队列消息的操作方法,队列消息的操作方法应用于存储介质,存储介质内设头指针、尾指针、释放指针以及队列存储空间,头指针、尾指针以及释放指针指向队列存储空间;队列消息的操作方法包括以下步骤:在接收到队列消息的操作指令时,确定操作指令的类型,操作指令包括入队指令、出队指令以及释放指令;根据操作指令,确定待移动的指针以及待移动的指针在队列存储空间中的目标位置,队列存储空间中的各个队列消息的数据量可不相同;控制待移动的指针移动至目标位置,并对队列消息执行操作指令对应的操作。本发明专利技术还公开一种存储介质和队列消息的操作装置。本发明专利技术公开的存储介质能够同时兼顾灵活性、低时延以及高性能大三特性。

Operation method, device and storage medium of queue message

The invention discloses an operation method of queue message, which is applied to storage medium. The storage medium contains head pointer, tail pointer, release pointer and queue storage space, and head pointer, tail pointer and release pointer point to queue storage space. The operation method of queue message includes the following steps: when receiving operation instructions of queue message, it is correct Define the type of operation instructions, which include inbound instructions, outbound instructions and release instructions; determine the target location of the needle to be moved and the needle to be moved in the queue storage space according to the operation instructions; the amount of data of each queue message in the queue storage space is different; control the needle to be moved to the target location, and perform operations on the queue message. Do the corresponding operation of the instructions. The invention also discloses an operation device for storing medium and queue message. The storage medium disclosed by the invention can simultaneously take into account the three characteristics of flexibility, low delay and high performance.

【技术实现步骤摘要】
队列消息的操作方法、装置和存储介质
本专利技术涉及通信
,尤其涉及一种队列消息的操作方法、装置和存储介质。
技术介绍
在计算机软件设计领域,消息队列作为一个经典的设计模式被广泛地应用于不同的程序结构之中。业界上主流的消息队列可分为“非嵌入式消息队列”与“嵌入式消息队列“,非嵌入式消息队列可独立作为单独的程序进行部署并且使用;而嵌入式的消息队列一般作为库函数嵌入至程序内部,与业务逻辑一同部署。对于“非嵌入式消息队列”,由于其作为一个独立的进程单独部署,且与大部分与业务逻辑程序通过TCP/IP、UnixSocket、IPC等进程间通信方式交互数据,因此,通信时延较之于嵌入式消息队列较大,不适用于金融证券行业等对时延要求敏感的领域。对于“嵌入式消息队列”而言,虽然其时延较低,但是由于复杂的业务需求,导致业界产品对该模式支持并不完善,例如Boost::LockFreeQueue等队列,其仅支持固定的消息长度,并且无法进行跨进程间的通信。而ZeroMQ设计复杂,虽然灵活性上有较大的提升,但是由于其灵活的设计,损失了较大的性能,并且对多线程的支持及其薄弱,无法有效的利用单机的计算能力。综上,现有消息队列产品很难兼顾灵活性、低时延与高性能。
技术实现思路
本专利技术的主要目的在于提供一种队列消息的操作方法、装置和存储介质,旨在解决消息队列产品很难兼顾灵活性、低时延与高性能的问题。为实现上述目的,本专利技术提供的一种队列消息的操作方法,所述队列消息的操作方法应用于存储介质,所述存储介质内设头指针、尾指针、释放指针以及队列存储空间,所述头指针、所述尾指针以及所述释放指针指向所述队列存储空间;所述队列消息的操作方法包括以下步骤:在接收到队列消息的操作指令时,确定所述操作指令的类型,其中,所述操作指令包括入队指令、出队指令以及释放指令;根据所述操作指令,确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置,其中,所述队列存储空间中的各个队列消息的数据量可不相同;控制所述待移动的指针移动至所述目标位置,并对所述队列消息执行所述操作指令对应的操作。在一实施例中,所述确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置的步骤包括:在所述操作指令为入队指令时,确定所述队列消息的数据量,并将所述尾指针确定为待移动的指针;根据所述数据量确定所述队列消息在所述队列存储空间中待分配区域的存储区域,并将所述存储区域的尾部作为所述待移动的指针的目标位置。在一实施例中,所述确定所述队列消息的数据量的步骤之后,还包括:判断所述队列消息的数据量是否小于或等于所述待分配区域的存储量;在所述队列消息的数据量小于或等于所述待分配区域的存储量时,执行将所述尾指针确定为待移动的指针的步骤;在所述队列消息的数据量大于所述待分配区域的存储量时,将所述待分配区域的状态由待分配更改为不可分配以得到不可分配区域,并将所述尾指针移动至所述尾指针在所述队列存储空间中的起始位置。在一实施例中,所述确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置的步骤包括:在所述操作指令为出队指令时,将所述头指针确定为待移动的指针,并确定所述队列消息的尾部在所述队列存储空间中的位置;将所述位置确定为所述待移动的指针的目标位置。在一实施例中,所述确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置的步骤包括:在所述操作指令为释放指令时,将所述释放指针作为待移动的指针,并确定所述队列消息的尾部;将所述队列消息的尾部作为所述待移动的指针对应的目标位置。在一实施例中,所述将所述释放指针作为待移动的指针的步骤之后,还包括:判断是否存在与所述队列消息相邻的待回收队列区域,其中,所述待回收队列区域中含有一个待回收的队列消息或多个依次相邻的待回收的队列消息,所述待回收队列区域位于所述队列消息之后;在未含有与所述队列消息相邻的待回收队列区域时,执行所述确定所述队列消息的尾部的步骤;在含有与所述队列消息相邻的待回收队列区域时,将所述待回收队列区域的尾部作为所述待移动的指针的目标位置。在一实施例中,所述将所述待移动的指针移动至所述目标位置的步骤之后,还包括:在所述释放指针移动过程中经过不可分配区域,且所述头指针以及所述尾指针均位于所述不可分配区域之后时,将所述不可分配区域的状态由不可分配更改为待分配,以将所述不可分配区域更改为待分配区域。在一实施例中,所述对所述队列消息执行所述操作指令对应的操作的步骤包括:在所述操作指令为入队指令时,将所述队列消息放置于所述队列消息对于的存储区域,并根据所述队列消息更新所处队列存储空间的数据结构;在所述操作指令为入队指令时,复制所述队列消息中的消息体,以将所述消息体发送至目标应用,并将所述队列消息的状态由已入队更改为已出队;在所述操作指令为释放指令时,将所述队列消息的状态由已出队设置为释放状态,并对所述的队列消息进行释放。为实现上述目的,本专利技术还提供一种队列消息的操作装置,所队列消息的操作装置包括处理器、存储器和存储在所述存储器上并可在所述处理器上运行的队列消息的操作程序,所述队列消息的操作程序被所述处理器执行时实现如上所述的队列消息的操作方法的各个步骤。为实现上述目的,本专利技术还提供一种存储介质,所述存储介质存储中内设头指针、尾指针、释放指针以及队列存储空间,所述头指针、所述尾指针以及所述释放指针指向所述队列存储空间,所述存储介质还存储有队列消息的操作程序,所述队列消息的操作程序被所述处理器执行时实现如上所述的队列消息的操作方法的各个步骤。本专利技术提供的队列消息的操作方法、装置和存储介质,在接收到队列消息的操作指令时,确定操作指令的类型,从而根据所述操作指令,在尾指针、头指针以及释放指针中确定待移动的指针,并确定待移动的指针在队列存储空间中的目标位置,从而控制待移动的指针移动至目标位置,以对队列消息执行操作指令对应的操作;由于存储介质中的各个队列消息的数据量可变,使得存储介质存储队列消息的灵活性较高,同时,由于存储介质在其内部执行对队列消息的出队操作以及入队操作,而无需在网络环境下进行出队以及入队操作,使得操作时延较小,提高了存储介质的性能,也即本专利技术提供的存储介质能够同时兼顾灵活性、低时延以及高性能大三特性。附图说明图1为本专利技术实施例涉及的存储介质的硬件结构示意图;图2为本专利技术队列消息的操作方法的第一实施例;图3为图2中步骤S20的一细化流程示意图;图4为图2中步骤S20的另一细化流程示意图;图5为图2中步骤S20的再一细化流程示意图;图6为本专利技术中队列消息的入队操作的简易流程示意图;图7为本专利技术中队列消息的出队操作的简易流程示意图;图8为本专利技术中队列消息的释放操作的简易流程示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例的主要解决方案是:在接收到队列消息的操作指令时,确定所述操作指令的类型,其中,所述操作指令包括入队指令、出队指令以及释放指令;根据所述操作指令,确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置,其中,所述队列存储空间中的各个队列消息的数据量可不相同;控制所述待移本文档来自技高网...

【技术保护点】
1.一种队列消息的操作方法,其特征在于,所述队列消息的操作方法应用于存储介质,所述存储介质内设头指针、尾指针、释放指针以及队列存储空间,所述头指针、所述尾指针以及所述释放指针指向所述队列存储空间;所述队列消息的操作方法包括以下步骤:在接收到队列消息的操作指令时,确定所述操作指令的类型,其中,所述操作指令包括入队指令、出队指令以及释放指令;根据所述操作指令,确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置,其中,所述队列存储空间中的各个队列消息的数据量可不相同;控制所述待移动的指针移动至所述目标位置,并对所述队列消息执行所述操作指令对应的操作。

【技术特征摘要】
1.一种队列消息的操作方法,其特征在于,所述队列消息的操作方法应用于存储介质,所述存储介质内设头指针、尾指针、释放指针以及队列存储空间,所述头指针、所述尾指针以及所述释放指针指向所述队列存储空间;所述队列消息的操作方法包括以下步骤:在接收到队列消息的操作指令时,确定所述操作指令的类型,其中,所述操作指令包括入队指令、出队指令以及释放指令;根据所述操作指令,确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置,其中,所述队列存储空间中的各个队列消息的数据量可不相同;控制所述待移动的指针移动至所述目标位置,并对所述队列消息执行所述操作指令对应的操作。2.如权利要求1所述的队列消息的操作方法,其特征在于,所述确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置的步骤包括:在所述操作指令为入队指令时,确定所述队列消息的数据量,并将所述尾指针确定为待移动的指针;根据所述数据量确定所述队列消息在所述队列存储空间中待分配区域的存储区域,并将所述存储区域的尾部作为所述待移动的指针的目标位置。3.如权利要求2所述的队列消息的操作方法,其特征在于,所述确定所述队列消息的数据量的步骤之后,还包括:判断所述队列消息的数据量是否小于或等于所述待分配区域的存储量;在所述队列消息的数据量小于或等于所述待分配区域的存储量时,执行将所述尾指针确定为待移动的指针的步骤;在所述队列消息的数据量大于所述待分配区域的存储量时,将所述待分配区域的状态由待分配更改为不可分配以得到不可分配区域,并将所述尾指针移动至所述尾指针在所述队列存储空间中的起始位置。4.如权利要求1所述的队列消息的操作方法,其特征在于,所述确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置的步骤包括:在所述操作指令为出队指令时,将所述头指针确定为待移动的指针,并确定所述队列消息的尾部在所述队列存储空间中的位置;将所述位置确定为所述待移动的指针的目标位置。5.如权利要求1所述的队列消息的操作方法,其特征在于,所述确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置的步骤包括:在所述操作指令为释放指令时,将所述释放指针作为待移动的指针,并确定所...

【专利技术属性】
技术研发人员:邓硕灵陈子文陈滨李玉龙彭世雄俞瑾郭未
申请(专利权)人:深圳证券交易所
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1