CN114116253A - 一种消息队列的消息处理方法及系统 - Google Patents
一种消息队列的消息处理方法及系统 Download PDFInfo
- Publication number
- CN114116253A CN114116253A CN202111300182.0A CN202111300182A CN114116253A CN 114116253 A CN114116253 A CN 114116253A CN 202111300182 A CN202111300182 A CN 202111300182A CN 114116253 A CN114116253 A CN 114116253A
- Authority
- CN
- China
- Prior art keywords
- message
- time stamp
- processing
- index file
- messages
- 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.)
- Pending
Links
Images
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种消息队列的消息处理方法及系统。本申请实施例提供的技术方案,通过在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中;确定当前需要进行消息处理的指定时间段,基于指定时间段查询索引文件的生产时间戳,确定对应的起始时间戳和终止时间戳,起始时间戳和终止时间戳在指定时间段以内;以起始时间戳和终止时间戳作为数据索引查询消息队列,提取对应位置的消息作为目标消息,对目标消息进行处理。采用上述技术手段,通过构建存储消息生产时间戳的索引文件,可以以此作为消息查询索引,查询到指定时间段以内的所有消息进行处理,以此来提升消息处理的灵活性和精准度,提升消息处理的效率。
Description
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种消息队列的消息处理方法及系统。
背景技术
目前,在消息处理场景中,经常会使用到消息队列以管理待处理的消息。消息队列是在消息的传输过程中保存消息的容器。消息队列在将消息从它的源中继到它的目标时充当中间人。在使用消息队列的时候,消息的消费方出于某些原因,需要对某段指定的消息或者某段时间的消息进行处理,以消息处理异常为例,经常需要重新消费某段时间的消息,以确保消息的正常处理。在处理消息时,一般通过确定该时段消息所处的消费组,进而从头处理该消费组的所有消息,以确保处理该段时间的消息。
但是,现有采用整个消费组处理消息的方式,其消息处理的方式较为复杂,容易导致消息处理资源的浪费,影响消息的处理效率。
发明内容
本申请实施例提供一种消息队列的消息处理方法及系统,能够精准定位需要处理的消息进行消息处理,解决现有消息处理方式复杂低效的技术问题。
在第一方面,本申请实施例提供了一种消息队列的消息处理方法,包括:
在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中;
确定当前需要进行消息处理的指定时间段,基于所述指定时间段查询所述索引文件的所述生产时间戳,确定对应的起始时间戳和终止时间戳,所述起始时间戳和所述终止时间戳在所述指定时间段以内;
以所述起始时间戳和所述终止时间戳作为数据索引查询所述消息队列,提取对应位置的消息作为目标消息,对所述目标消息进行处理。
在第二方面,本申请实施例提供了一种消息队列的消息处理系统,包括:
存储模块,用于在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中;
定位模块,用于确定当前需要进行消息处理的指定时间段,基于所述指定时间段查询所述索引文件的所述生产时间戳,确定对应的起始时间戳和终止时间戳;
处理模块,用于以所述起始时间戳和所述终止时间戳作为数据索引查询所述消息队列,提取对应位置的消息作为目标消息,对所述目标消息进行处理。
在第三方面,本申请实施例提供了一种电子设备,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的消息队列的消息处理方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的消息队列的消息处理方法。
本申请实施例通过在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中;确定当前需要进行消息处理的指定时间段,基于指定时间段查询索引文件的生产时间戳,确定对应的起始时间戳和终止时间戳,起始时间戳和终止时间戳在指定时间段以内;以起始时间戳和终止时间戳作为数据索引查询消息队列,提取对应位置的消息作为目标消息,对目标消息进行处理。采用上述技术手段,通过构建存储消息生产时间戳的索引文件,可以以此作为消息查询索引,查询到指定时间段以内的所有消息进行处理,以此来提升消息处理的灵活性和精准度,提升消息处理的效率。
附图说明
图1是本申请实施例提供的一种消息队列的消息处理方法的流程图;
图2是本申请实施例中的生产时间戳查询示意图;
图3是本申请实施例中的消息消费异常提示流程图;
图4是本申请实施例中提供的一种消息队列的消息处理装置的结构示意图;
图5是本申请实施例中提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本申请提供的一种消息队列的消息处理方法,旨在进行消息处理时,借助预设置的包含消息生产时间戳的索引文件,以从消息队列中精准查询需要处理的消息进行处理,以此来提升消息处理效率和灵活性。相对于传统的消息队列处理方式,其在进行指定时段的消息处理时,一般是直接找到该时段消息所处的消费组,进而处理整个消费组的所有消息。整个消息处理过程相对较为繁杂冗长,导致一定的消息处理资源的浪费。倘若需要处理的消息跨越多个消费组,则消息的处理方式会更为低效,容易进一步影响系统业务的运行。基于此,提供本申请实施例的一种消息队列的消息处理方法,以解决现有消息处理方式复杂低效的技术问题。
实施例:
图1给出了本申请实施例提供的一种消息队列的消息处理方法的流程图,本实施例中提供的消息队列的消息处理方法可以由消息队列的消息处理设备执行,该消息队列的消息处理设备可以通过软件和/或硬件的方式实现,该消息队列的消息处理设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该消息队列的消息处理设备可以是服务器主机等消息处理设备。
下述以该消息队列的消息处理设备为执行消息队列的消息处理方法的主体为例,进行描述。参照图1,该消息队列的消息处理方法具体包括:
S110、在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中。
本申请实施例在进行消息处理时,根据需要进行处理的对应时段的消息,通过预先构建的索引文件提供的消息查询索引,进行消息队列中的消息定位,以便于精准获取该段时间以内的消息进行处理,减少不相关消息的冗余处理,提升消息处理效率和灵活性。
在此之前,对应每一个存储至消息队列的消息,会同步将消息的生产时间戳存储至索引文件中。索引文件与消息队列对应设置,可以理解的是,消息队列中,各个消息都是按照生产时间戳的顺序存储至消息队列的。则在存储消息至消息队列时,同步将该消息的生产时间戳按顺序存储至索引文件。以此可使消息在消息队列中的排列顺序与消息的生产时间戳在索引文件中的排序一致,方便后续进行消息队列中的消息查找。
具体的,本申请按照对应消息在消息队列的存储顺序,以设定数量的字节同步将生产时间戳存储至预构建的索引文件中。例如,通过设置一个time_index(时间索引)文件,对应每个消息使用8个字节来存储消息的生产时间戳,生产时间戳按照消息在消息队列的顺序依次排列,由于消息是顺序产生的,因此存储的生产时间戳也是一直增大的。其中,对应第1-8字节,存储第1个消息的生产时间戳为“29924000”(毫秒时间戳,时间为2021-08-2115:12:03),对应第9-16字节,存储第2个消息的时间戳“29982000”(2021-08-2115:13:02),依次类推,即可完成消息队列中所有消息的生产时间戳存储,以便于后续进行查询。
在一个实施例中,根据索引文件的实际管理需要,还可以周期性验证消息队列中各个生产时间戳是否正确存储。可以理解的是,索引文件中,消息的生产时间戳是根据消息的生成顺序对应产生的,即索引文件中消息生产时间戳是一直增大的。基于此,通过提取相邻两组字节数据,基于字节数据比对两个生产时间戳的大小,若后一生产时间戳大于前一生产时间戳,则验证通过,生产时间戳正确存储。以此类推,即可完成索引文件的生产时间戳存储验证。并在验证生产时间戳存储错误时,根据错误生产时间戳在索引文件中的排列顺序查询消息队列,确定消息队列中对应的消息,并根据该消息的相关标识信息查询系统获取该消息的正确生产时间戳,以便于更正索引文件中的错误生产时间戳。可选的,针对错误生产时间戳,还可以根据其与前后两个生产时间戳的比对结果,重新构建一个取值在前后两个生产时间戳之间的生产时间戳进行错误时间戳更正。通过错误时间戳更正,可以确保消息的生产时间戳准确,便于后续通过索引文件查询精准定位需要处理的消息,提升消息处理的准确度。
S120、确定当前需要进行消息处理的指定时间段,基于指定时间段查询索引文件的生产时间戳,确定对应的起始时间戳和终止时间戳,起始时间戳和终止时间戳在指定时间段以内。
基于预先构建的索引文件,在进行消息处理的时候,即可根据当前需要进行消息处理的指定时间段,对应查询获取消息队列的消息进行处理。其中,该指定时间段可以是管理人员自行指定,也可以是根据消息消费节点的处理情况,自动划定对应的时间段作为指定时间段,以进行该指定时间段的消息处理。例如,管理人员发现过去某一个时间段的消息消费节点可能存在运行故障,导致这一时间段内的消息处理存在异常情况,因此需要重新处理这部分消息,即消息的重新消费。则管理人员通过选定该时间段作为指定时间段,输入该指定时间段至该消息队列的消息处理设备,则该消息队列的消息处理设备通过指定时段进行对应消息的查询获取,并重新进行消息处理操作。
可选的,该消息队列的消息处理设备也可以周期性查询消息消费节点的消息消费日志,基于消息消费日志划定当前需要进行消息处理的指定时间段。可以理解的是,消息消费节点处在处理消息时,会监控整个消息处理过程,基于监控结果生成一个消息消费日志,消息消费日志记录了整个消息处理过程以及消息处理结果。该消息队列的消息处理设备通过查询消费日志,即可确定该消息是否正常处理。进而通过确定某一段处理异常的消息,确定对应的时间段,作为消息重新处理的指定时间段。消息队列的消息处理设备通过指定时段进行对应消息的查询获取,进而执行消息的重新处理操作。
进一步地,基于需要进行消息处理的指定时间段,即可以此作为依据查询索引文件,进而根据对应的生产时间戳定位消息队列中需要进行处理的消息。可以理解的是,基于已确定的指定时间段,在索引文件中,生产时间戳落入该指定时间段的生产时间戳,其对应的消息即为需要进行处理的消息。因此,本申请实施例根据指定时间段确定这一段生产时间戳信息中的第一个和最后一个生产时间戳(即起始时间戳和终止时间戳),其对应在消息队列中的消息,即为当前需要进行处理的消息的第一个和最后一个。
具体地,该消息队列的消息处理设备基于指定时间段的开始时间和结束时间,分别使用二分法查询索引文件的生产时间戳,确定对应开始时间的起始时间戳和对应结束时间的终止时间戳。通过二分查找算法,可以精准定位指定时间段内两个边界时间戳,即起始时间戳和终止时间戳。通过起始时间戳和终止时间戳即可在消息队列中定位到待处理消息的起点和终点。其中,在使用二分查找算法进行生产时间戳查询时,根据二分法在索引文件中查询最接近开始时间,且大于等于开始时间的生产时间戳,作为起始时间戳;根据二分法在索引文件中查询最接近结束时间,且小于等于结束时间的生产时间戳,作为终止时间戳。
举例而言,如图2所示,若开始时间“2021-08-3000:00:30”,则以开始时间“2021-08-3000:00:30”作为目标时间戳,在索引文件中,查询最接近目标时间戳“2021-08-3000:00:30”,且大于等于目标时间戳“2021-08-3000:00:30”的生产时间戳。通过使用二分查找算法,在索引文件“time_index”中找到对应生产时间戳作为起始时间戳,再根据当前起始时间戳在索引文件中的存储位置,即可确定其对应消息在消息队列中的存储位置,以此实现消息的定位。参照图2,在根据目标时间戳“2021-08-3000:00:30”查询索引文件时,由于索引文件中生产时间戳依序排列存储,则通过将标记“Low”指向待查索引文件序列中的第一个元素(即第一个生产时间戳),“High”指向待查索引文件序列中的最后一个元素(即最后一个生产时间戳),“Mid”指向待查索引序列的中间元素。基于目标时间戳“2021-08-3000:00:30”及上述标记,首先读取到索引文件的第1个生产时间戳“2021-08-3000:00:00”和第5个生产时间戳“2021-08-3000:00:40”,根据二分查找算法,确定序列中的中间元素为“2021-08-3000:00:20”。将中间元素“2021-08-3000:00:20”比较目标时间戳“2021-08-3000:00:30”,由于中间元素小于目标时间戳,则继续在索引文件序列的下半区查询。同样的,通过将标记“Low”指向待查索引文件下半区序列中的第一个元素,“High”指向待查索引文件下半区序列中的最后一个元素,“Mid”指向待查索引文件下半区序列的中间元素。基于目标时间戳“2021-08-3000:00:30”及上述标记,首先读取到索引文件下半区的第1个生产时间戳“2021-08-3000:00:30”和第5个生产时间戳“2021-08-3000:00:40”,根据二分查找算法,确定下半区序列中的中间元素为“2021-08-3000:00:30”。将中间元素“2021-08-3000:00:30”比较目标时间戳“2021-08-3000:00:30”,此时中间元素“2021-08-3000:00:30”刚好等于目标时间戳“2021-08-3000:00:30”,于是找到了目标时间戳“2021-08-3000:00:30”在索引文件的位置为4。则同样的,其对应消息在消息队列的排列位置也为4,以此即可定位起始时间戳对应的消息得到位置。
以此类推,通过将“Mid”设置为“Low”和“High”之间区域的中间值。如果处于“Mid”的元素比目标时间戳小,将标记“Low”移动到“Mid”后的一个元素的位置上。即下一组要搜索的区域是当前索引文件序列的上半区。如果处于“Mid”的元素比目标时间戳大,将标记“High”移动到“Mid”前一个元素的位置上。即下一组要搜索的区域是当前索引文件序列的下半区。通过不断循环迭代,在循环的每次迭代过程中,随着搜索的不断进行,“Low”从左向右移,“High”从右向左移。一旦在“Mid”处找到目标,查找将停止;如果没有找到目标,“Low”和“High”将重合。以此,通过二分查找算法,即可确定起始时间戳和终止时间戳在索引文件序列中的位置,完成目标时间戳的定位流程。
S130、以起始时间戳和终止时间戳作为数据索引查询消息队列,提取对应位置的消息作为目标消息,对目标消息进行处理。
最终,按照起始时间戳和终止时间戳在索引文件序列中的位置,通过定位消息队列中对应位置的消息作为待处理消息分段的第一个消息和最后一个消息。其中,根据起始时间戳和终止时间戳在索引文件中的排列位置,定位消息队列中在排列位置以内的消息,并提取作为目标消息。例如,若起始时间戳在索引文件序列中的位置为4,终止终止时间戳在索引文件序列中的位置为40,则需要提取消息队列中,排序4-40的消息进行处理。通过定位这部分消息作为目标消息,将这部分消息提取并分配至消息消费节点,以供消息消费节点进行处理,最终完成本申请消息队列的消息处理方法。
需要说明的是,本申请实施例中,进行处理的消息可以是已经处理过但因为消息处理异常等情况需要重新处理的消息,及消息重新消费。也可以是某部分需要紧急处理的消息,通过指定对这部分消息进行优先处理,或者提取交由特定的消息消费节点处理,以执行相应的业务功能。本申请实施例对消息的具体处理场景不做固定限制,在此不多赘述。
可选的,针对消息重新消费的情况,本申请实施例还进一步进行对应消息的处理记录,以便于对这部分异常消息的处理情况进行监控,并根据监控到的异常情况进行消息消费异常提示。参照图3,消息消费异常提示的流程包括:
S1401、标记目标消息的处理记录,并根据目标消息的处理结果标记目标消息的处理状态;
S1402、基于目标消息的处理记录或者处理状态进行目标消息的消费异常提示。
通过对目标消息的重新消费进行记录,并根据目标消息的处理结果标记对应的处理状态。其中,若目标消息处理成功,则标记该消息的处理状态为“处理成功”,反之,若处理失败,则标记消息的处理状态为“处理失败”。以此,通过处理记录和处理状态的标记,即可确定该目标消息的重新处理次数,和每次处理的结果。进而通过设置相应的消息异常提示规则,即可对应进行消息异常提示。例如,设定消息重新处理3次且处理状态均为处理失败,则输出这一消息的异常提示。则根据这一设定的消息异常提示规则。通过周期性轮询消息处理记录和对应的消息处理状态,找到对应异常的消息,进行消息异常提示。以此可以确保消息处理的稳定性,优化消息处理效果。
上述,通过在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中;确定当前需要进行消息处理的指定时间段,基于指定时间段查询索引文件的生产时间戳,确定对应的起始时间戳和终止时间戳,起始时间戳和终止时间戳在指定时间段以内;以起始时间戳和终止时间戳作为数据索引查询消息队列,提取对应位置的消息作为目标消息,对目标消息进行处理。采用上述技术手段,通过构建存储消息生产时间戳的索引文件,可以以此作为消息查询索引,查询到指定时间段以内的所有消息进行处理,以此来提升消息处理的灵活性和精准度,提升消息处理的效率。
在上述实施例的基础上,图4为本申请提供的一种消息队列的消息处理系统的结构示意图。参考图4,本实施例提供的消息队列的消息处理系统具体包括:存储模块21、定位模块22和处理模块23。
其中,存储模块21用于在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中;
定位模块22用于确定当前需要进行消息处理的指定时间段,基于指定时间段查询索引文件的生产时间戳,确定对应的起始时间戳和终止时间戳;
处理模块23用于以起始时间戳和终止时间戳作为数据索引查询消息队列,提取对应位置的消息作为目标消息,对目标消息进行处理。
具体地,存储模块21包括:
按照对应消息在消息队列的存储顺序,以设定数量的字节同步将生产时间戳存储至预构建的索引文件中。
定位模块22包括:
划定单元,用于周期性查询消息消费节点的消息消费日志,基于消息消费日志划定当前需要进行消息处理的指定时间段。
查询单元,用于基于指定时间段的开始时间和结束时间,分别使用二分法查询索引文件的生产时间戳,确定对应开始时间的起始时间戳和对应结束时间的终止时间戳。
其中,根据二分法在索引文件中查询最接近开始时间,且大于等于开始时间的生产时间戳,作为起始时间戳;根据二分法在索引文件中查询最接近结束时间,且小于等于结束时间的生产时间戳,作为终止时间戳。
处理模块23包括:
提取单元,用于根据起始时间戳和终止时间戳在索引文件中的排列位置,定位消息队列中在排列位置以内的消息,并提取作为目标消息。
消息队列的消息处理系统还包括:
标记模块,用于标记目标消息的处理记录,并根据目标消息的处理结果标记目标消息的处理状态;基于目标消息的处理记录或者处理状态进行目标消息的消费异常提示。
上述,通过在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中;确定当前需要进行消息处理的指定时间段,基于指定时间段查询索引文件的生产时间戳,确定对应的起始时间戳和终止时间戳,起始时间戳和终止时间戳在指定时间段以内;以起始时间戳和终止时间戳作为数据索引查询消息队列,提取对应位置的消息作为目标消息,对目标消息进行处理。采用上述技术手段,通过构建存储消息生产时间戳的索引文件,可以以此作为消息查询索引,查询到指定时间段以内的所有消息进行处理,以此来提升消息处理的灵活性和精准度,提升消息处理的效率。
本申请实施例提供的消息队列的消息处理系统可以用于执行上述实施例提供的消息队列的消息处理方法,具备相应的功能和有益效果。
在上述实际上例的基础上,本申请实施例还提供了一种电子设备,参照图5,该电子设备包括:处理器31、存储器32、通信模块33、输入装置34及输出装置35。存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例的消息队列的消息处理方法对应的程序指令/模块(例如,消息队列的消息处理系统中的存储模块、定位模块和处理模块)。通信模块33用于进行数据传输。处理器31通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的消息队列的消息处理方法。输入装置34可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置35可包括显示屏等显示设备。上述提供的电子设备可用于执行上述实施例提供的消息队列的消息处理方法,具备相应的功能和有益效果。
在上述实施例的基础上,本申请实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种消息队列的消息处理方法,存储介质可以是任何的各种类型的存储器设备或存储设备。当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的消息队列的消息处理方法,还可以执行本申请任意实施例所提供的消息队列的消息处理方法中的相关操作。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (10)
1.一种消息队列的消息处理方法,其特征在于,包括:
在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中;
确定当前需要进行消息处理的指定时间段,基于所述指定时间段查询所述索引文件的所述生产时间戳,确定对应的起始时间戳和终止时间戳,所述起始时间戳和所述终止时间戳在所述指定时间段以内;
以所述起始时间戳和所述终止时间戳作为数据索引查询所述消息队列,提取对应位置的消息作为目标消息,对所述目标消息进行处理。
2.根据权利要求1所述的消息队列的消息处理方法,其特征在于,所述基于所述指定时间段查询所述索引文件的所述生产时间戳,确定对应的起始时间戳和终止时间戳,包括:
基于所述指定时间段的开始时间和结束时间,分别使用二分法查询所述索引文件的所述生产时间戳,确定对应所述开始时间的起始时间戳和对应所述结束时间的终止时间戳。
3.根据权利要求2所述的消息队列的消息处理方法,其特征在于,所述分别使用二分法查询所述索引文件的所述生产时间戳,确定对应所述开始时间的起始时间戳和对应所述结束时间的终止时间戳,包括:
根据二分法在所述索引文件中查询最接近所述开始时间,且大于等于所述开始时间的所述生产时间戳,作为所述起始时间戳;
根据二分法在所述索引文件中查询最接近所述结束时间,且小于等于所述结束时间的所述生产时间戳,作为所述终止时间戳。
4.根据权利要求1所述的消息队列的消息处理方法,其特征在于,所述以所述起始时间戳和所述终止时间戳作为数据索引查询所述消息队列,提取对应位置的消息作为目标消息,包括:
根据所述起始时间戳和所述终止时间戳在所述索引文件中的排列位置,定位所述消息队列中在所述排列位置以内的消息,并提取作为目标消息。
5.根据权利要求1所述的消息队列的消息处理方法,其特征在于,所述将对应消息的生产时间戳依序存储至预构建的索引文件中,包括:
按照对应消息在所述消息队列的存储顺序,以设定数量的字节同步将所述生产时间戳存储至预构建的索引文件中。
6.根据权利要求1所述的消息队列的消息处理方法,其特征在于,在对所述目标消息进行处理之后,还包括:
标记所述目标消息的处理记录,并根据所述目标消息的处理结果标记所述目标消息的处理状态;
基于所述目标消息的处理记录或者处理状态进行所述目标消息的消费异常提示。
7.根据权利要求1所述的消息队列的消息处理方法,其特征在于,所述确定当前需要进行消息处理的指定时间段,包括:
周期性查询消息消费节点的消息消费日志,基于所述消息消费日志划定当前需要进行消息处理的指定时间段。
8.一种消息队列的消息处理系统,其特征在于,包括:
存储模块,用于在将消息存储至消息队列时,将对应消息的生产时间戳依序存储至预构建的索引文件中;
定位模块,用于确定当前需要进行消息处理的指定时间段,基于所述指定时间段查询所述索引文件的所述生产时间戳,确定对应的起始时间戳和终止时间戳;
处理模块,用于以所述起始时间戳和所述终止时间戳作为数据索引查询所述消息队列,提取对应位置的消息作为目标消息,对所述目标消息进行处理。
9.一种电子设备,其特征在于,包括:
存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的消息队列的消息处理方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一所述的消息队列的消息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111300182.0A CN114116253A (zh) | 2021-11-04 | 2021-11-04 | 一种消息队列的消息处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111300182.0A CN114116253A (zh) | 2021-11-04 | 2021-11-04 | 一种消息队列的消息处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116253A true CN114116253A (zh) | 2022-03-01 |
Family
ID=80380526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111300182.0A Pending CN114116253A (zh) | 2021-11-04 | 2021-11-04 | 一种消息队列的消息处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116253A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242744A (zh) * | 2022-06-15 | 2022-10-25 | 艺龙网信息技术(北京)有限公司 | 自定义时间的定时消息发送方法、系统、终端及存储介质 |
-
2021
- 2021-11-04 CN CN202111300182.0A patent/CN114116253A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242744A (zh) * | 2022-06-15 | 2022-10-25 | 艺龙网信息技术(北京)有限公司 | 自定义时间的定时消息发送方法、系统、终端及存储介质 |
CN115242744B (zh) * | 2022-06-15 | 2024-02-02 | 艺龙网信息技术(北京)有限公司 | 自定义时间的定时消息发送方法、系统、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190026193A1 (en) | Method and apparatus for executing data recovery operation | |
US8938421B2 (en) | Method and a system for synchronizing data | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN106874281B (zh) | 实现数据库读写分离的方法和装置 | |
CN109308227B (zh) | 故障检测控制方法及相关设备 | |
CN106575251B (zh) | 流数据的推测数据处理 | |
CN112613993B (zh) | 交易数据处理方法、装置、计算机设备和存储介质 | |
CN111475517A (zh) | 数据更新方法、装置、计算机设备及存储介质 | |
CN114116253A (zh) | 一种消息队列的消息处理方法及系统 | |
CN107330031B (zh) | 一种数据存储的方法、装置及电子设备 | |
CN111385613B (zh) | 一种电视系统修复方法、存储介质及应用服务器 | |
CN106980514B (zh) | 配置数据的更新方法和装置 | |
CN115905307A (zh) | 数据存储方法及装置、电子设备、存储介质 | |
CN107463484B (zh) | 一种采集监控记录的方法及系统 | |
CN111858738A (zh) | 数据信息传输方法、装置及计算机可读介质 | |
CN111694728A (zh) | 脚本的自动化生成方法和装置 | |
CN111324513A (zh) | 一种人工智能开发平台的监控管理方法及系统 | |
CN111782721A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN104199930A (zh) | 数据采集及处理的系统及方法 | |
CN114153830B (zh) | 数据验证方法及其装置、计算机存储介质、电子设备 | |
CN113064881B (zh) | 一种数据库管理方法、装置、设备及可读存储介质 | |
CN112511493B (zh) | 业务数据报文处理方法、装置、计算机设备和存储介质 | |
CN110837536B (zh) | 一种信息处理方法、装置和存储介质 | |
WO2023030645A1 (en) | Root cause analysis of anomalous events in a computer network | |
CN116881081A (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 |