CN110704212B - 一种消息处理方法及装置 - Google Patents

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

Info

Publication number
CN110704212B
CN110704212B CN201910947110.1A CN201910947110A CN110704212B CN 110704212 B CN110704212 B CN 110704212B CN 201910947110 A CN201910947110 A CN 201910947110A CN 110704212 B CN110704212 B CN 110704212B
Authority
CN
China
Prior art keywords
message
field
target
storage
storage file
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.)
Active
Application number
CN201910947110.1A
Other languages
English (en)
Other versions
CN110704212A (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.)
Guangzhou Lizhi Network Technology Co ltd
Original Assignee
Guangzhou Lizhi Network Technology 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 Guangzhou Lizhi Network Technology Co ltd filed Critical Guangzhou Lizhi Network Technology Co ltd
Priority to CN201910947110.1A priority Critical patent/CN110704212B/zh
Publication of CN110704212A publication Critical patent/CN110704212A/zh
Application granted granted Critical
Publication of CN110704212B publication Critical patent/CN110704212B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

Abstract

本申请涉及一种消息处理方法及装置,应用于消息队列存储方,其中所述方法包括:接收统计请求,所述统计请求包括目标业务字段、起始时间信息以及结束时间信息;在预设的用于存储消息的创建时间的一个或多个时间存储文件中,分别查找所述起始时间信息以及结束时间信息,以确定所述起始时间信息对应的第一消息编号,以及,所述结束时间信息对应的第二消息编号;获取所述目标业务字段对应的目标字段存储文件;在所述目标字段存储文件中查找从所述第一消息编号到所述第二消息编号之间的消息对应的字段值,并对查找到的所有字段值进行统计;将所述统计得到的统计值返回。本实施例可以在消息队列中完成目标业务字段的统计,提高了业务统计的实时性。

Description

一种消息处理方法及装置
技术领域
本申请涉及数据处理技术领域,尤其涉及一种消息处理方法及装置。
背景技术
消息队列(Message Queue,简称MQ)中间件已经逐渐成为企业信息系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC(Remote Procedure Call,远程过程调用)的主要手段之一。作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。
MQ的组成主要包括如下部分:
Broker:消息服务器,作为server(服务器)提供消息核心服务。
Producer:消息生产者,业务的发起方,负责生产消息传输给Broker。
Consumer:消息消费者,业务的处理方,负责从Broker获取消息并进行业务逻辑处理。
Topic:主题,发布订阅模式(Pub/Sub)下的消息统一汇集地,不同生产者向Topic发送消息,由MQ服务器分发到不同的订阅者,实现消息的广播。
Queue:队列,PTP(Point To Point,点对点)模式下,特定生产者向特定queue发送消息,消费者订阅特定的queue完成指定消息的接收。
Message:消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输。
在使用消息队列中间件的过程中,业务方对于消息字段存在一些统计需求,需要计算一定时间内,某个消息字段的总数、平均值、最大值、最小值等。例如,需要查询当天内所有未处理订单消息的总金额,查询当天内订单消息的金额平均值等。在高并发场景下,假设能够快速统计这些数据,可以给业务决策提供带来一定的依据。另外,在消息的消费方,其可能不一定会有对消息相应字段的统计功能,假设消费方向业务方请求获取相关的统计数据,业务方也只能在消息消费完后才能提供给消费方,具有一定的滞后性,不利于分析使用。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的一种消息处理方法及装置。
第一方面,本申请提供了一种消息处理方法,应用于消息队列存储方,包括:
接收统计请求,所述统计请求包括目标业务字段、起始时间信息以及结束时间信息;
在预设的用于存储消息的创建时间的一个或多个时间存储文件中,分别查找所述起始时间信息以及结束时间信息,以确定所述起始时间信息对应的第一消息编号,以及,所述结束时间信息对应的第二消息编号;
获取所述目标业务字段对应的目标字段存储文件,所述目标字段存储文件用于存储各消息中所述目标业务字段对应的字段值;
在所述目标字段存储文件中查找从所述第一消息编号到所述第二消息编号之间的消息对应的字段值,并对查找到的所有字段值进行统计;
将所述统计得到的统计值返回。
可选地,所述在预设的用于存储消息的创建时间的时间存储文件中,分别查找所述起始时间信息以及结束时间信息,以确定所述起始时间信息对应的第一消息编号,以及,所述结束时间信息对应的第二消息编号,包括:
从所述时间存储文件中,确定所述起始时间信息所属的第一目标时间存储文件,以及,所述结束时间信息所属的第二目标时间存储文件,其中,所述第一目标时间存储文件以及所述第二目标时间存储文件的文件名包含该文件存储的第一条消息的消息编号;
在所述第一目标时间存储文件中查找所述起始时间信息所在的第一存储位置,以及,在所述第二目标时间存储文件中查找所述结束时间信息所在的第二存储位置;
获取所述第一存储位置以及所述第一目标时间存储文件存储的第一条消息的存储位置之间的第一偏移量,并根据所述第一偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号;
获取所述第二存储位置以及所述第二目标时间存储文件存储的第一条消息的存储位置之间的第二偏移量,并根据所述第二偏移量以及所述第二目标时间存储文件存储的第一条消息的消息编号,确定所述第二存储位置对应的第二消息编号。
可选地,各消息的存储位置占用指定长度的字节;
所述根据所述第一偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号,包括:
根据所述第一偏移量以及所述指定长度,确定所述第一存储位置对应的消息与所述第一目标时间存储文件存储的第一条消息的消息编号的编号偏移量;
根据所述编号偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号。
可选地,所述在所述目标字段存储文件中查找从所述第一消息编号到所述第二消息编号之间的消息对应的字段值,包括:
确定保存所述第一消息编号对应的消息的第一目标字段存储文件,以及,保存所述第二消息编号对应的消息的第二目标字段存储文件,其中,所述第一目标字段存储文件以及所述第二目标字段存储文件的文件名包含该文件存储的第一条消息的消息编号;
根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号,计算两者的编号偏移量;
根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号的编号偏移量以及预设的每个消息编号对应的指定长度的字节,计算所述第一消息编号在所述第一目标字段存储文件中的存储位置,并从所述存储位置中取出对应的字段值;
依次读取位于所述第一消息编号对应的存储位置后的存储位置中存储的字段值,直到读取到所述第二消息编号对应的存储位置的字段值为止。
可选地,在所述接收统计请求之前,所述方法还包括:
确定各主题需要记录的指定业务字段;
根据所述指定业务字段,依次获取接收的各消息对应的字段值,并将所述字段值存入所述指定业务字段对应的字段存储文件中。
可选地,所述确定各主题需要记录的指定业务字段,包括:
定时读取预设的配置文件中记录的各主题对应的配置信息,其中,所述配置文件为根据接收的消息中指定的主题以及指定业务字段生成;
从所述配置信息中获取所述主题对应的指定业务字段。
第二方面,本申请还提供一种消息处理装置,应用于消息队列存储方,包括:
请求接收模块,用于接收统计请求,所述统计请求包括目标业务字段、起始时间信息以及结束时间信息;
消息定位模块,用于在预设的用于存储消息的创建时间的一个或多个时间存储文件中,分别查找所述起始时间信息以及结束时间信息,以确定所述起始时间信息对应的第一消息编号,以及,所述结束时间信息对应的第二消息编号;
目标字段存储文件获取模块,用于获取所述目标业务字段对应的目标字段存储文件,所述目标字段存储文件用于存储各消息中所述目标业务字段对应的字段值;
字段值读取模块,用于在所述目标字段存储文件中查找从所述第一消息编号到所述第二消息编号之间的消息对应的字段值;
字段统计模块,用于对查找到的所有字段值进行统计;
统计值返回模块,用于将所述统计得到的统计值返回。
可选地,所述消息定位模块包括:
目标时间存储文件确定子模块,用于从所述时间存储文件中,确定所述起始时间信息所属的第一目标时间存储文件,以及,所述结束时间信息所属的第二目标时间存储文件,其中,所述第一目标时间存储文件以及所述第二目标时间存储文件的文件名包含该文件存储的第一条消息的消息编号;
存储位置确定子模块,用于在所述第一目标时间存储文件中查找所述起始时间信息所在的第一存储位置,以及,在所述第二目标时间存储文件中查找所述结束时间信息所在的第二存储位置;
第一消息编号确定子模块,用于获取所述第一存储位置以及所述第一目标时间存储文件存储的第一条消息的存储位置之间的第一偏移量,并根据所述第一偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号;
第二消息编号确定子模块,用于获取所述第二存储位置以及所述第二目标时间存储文件存储的第一条消息的存储位置之间的第二偏移量,并根据所述第二偏移量以及所述第二目标时间存储文件存储的第一条消息的消息编号,确定所述第二存储位置对应的第二消息编号。
可选地,各消息的存储位置占用指定长度的字节;
所述第一消息编号确定子模块具体用于:
根据所述第一偏移量以及所述指定长度,确定所述第一存储位置对应的消息与所述第一目标时间存储文件存储的第一条消息的消息编号的编号偏移量;
根据所述编号偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号。
可选地,所述字段值读取模块包括:
目标字段文件确定子模块,用于确定保存所述第一消息编号对应的消息的第一目标字段存储文件,以及,保存所述第二消息编号对应的消息的第二目标字段存储文件,其中,所述第一目标字段存储文件以及所述第二目标字段存储文件的文件名包含该文件存储的第一条消息的消息编号;
编号偏移量确定子模块,用于根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号,计算两者的编号偏移量;
字段值获取子模块,用于根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号的编号偏移量以及预设的每个消息编号对应的指定长度的字节,计算所述第一消息编号在所述第一目标字段存储文件中的存储位置,并从所述存储位置中取出对应的字段值;依次读取位于所述第一消息编号对应的存储位置后的存储位置中存储的字段值,直到读取到所述第二消息编号对应的存储位置的字段值为止。
可选地,所述装置还包括:
指定业务字段确定模块,用于在所述接收统计请求之前,确定各主题需要记录的指定业务字段;
字段值记录模块,用于根据所述指定业务字段,依次获取接收的各消息对应的字段值,并将所述字段值存入所述指定业务字段对应的字段存储文件中。
可选地,所述指定业务字段确定模块具体用于:
定时读取预设的配置文件中记录的各主题对应的配置信息,其中,所述配置文件为根据接收的消息中指定的主题以及指定业务字段生成;
从所述配置信息中获取所述主题对应的指定业务字段。
第三方面,本申请提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述的方法。
第四方面,本申请提供了一种存储介质,当所述存储介质中的指令由所述设备的处理器执行时,使得所述电子设备能够执行如上述的方法。
本申请具有如下有益效果:
在本实施例中,针对消息队列中的消息,预先创建用于存储消息的创建时间字段的值的时间存储文件以及用于存储各消息的指定业务字段的字段值的字段存储文件,当消息队列存储方接收到统计请求时,可以从统计请求中获取需要统计的目标业务字段、起始时间信息以及结束时间信息,根据起始时间信息以及结束时间信息从时间存储文件中查询出起始时间信息对应的第一消息编号以及结束时间信息对应的第二消息编号,然后根据第一消息编号和第二消息编号从指定业务字段对应的目标字段存储文件中查找出从第一消息编号到第二消息编号之间的消息对应的字段值进行汇总计算,从而能够在消息队列中完成目标业务字段的统计,丰富了业务统计的实现方式,提高了业务统计的实时性。
附图说明
图1为本申请的一种消息处理方法实施例的步骤流程图;
图2为本申请的一种消息处理装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种消息处理方法实施例的步骤流程图。本实施例可以应用于消息队列的存储方,例如,可以应用于但不限于消息队列中间件的消息服务器Broker中,具体可以包括如下步骤:
步骤101,接收统计请求,所述统计请求包括目标业务字段、起始时间信息以及结束时间信息。
在一种实现中,Broker可以从消息队列的后台或者API(ApplicationProgramming Interface,应用程序编程接口)接收统计请求。一种例子中,该统计请求可以为由业务方或消费方通过消息队列的后台或者API发起统计操作后生成的请求,业务方或消费方发起的统计操作可以包括但不限于填写需要统计的目标业务字段、起始时间信息以及结束时间信息。
示例性地,起始时间信息以及结束时间信息可以表示为时间戳的方式,例如,起始时间信息为1566143189000,结束时间信息为15661431891000。
目标业务字段可以为消息的任何字段,可选地,该目标业务字段可以包括已具有关联的字段存储文件的字段。例如,在电子商务应用场景中,目标业务字段可以为价格price字段、收获地址字段、货物对象字段等。
步骤102,在预设的用于存储消息的创建时间的一个或多个时间存储文件中,分别查找所述起始时间信息以及结束时间信息,以确定所述起始时间信息对应的第一消息编号,以及,所述结束时间信息对应的第二消息编号。
在该步骤中,当Broker接收到统计请求以后,可以对该统计请求进行解析,获得目标业务字段、起始时间信息以及结束时间信息,然后确定该起始时间信息对应的第一消息编号,以及结束时间信息对应的第二消息编号。其中,消息编号可以用于反映Broker收到该消息的次序,例如,当前消息是Broker收到的第13条消息,则消息编号为13。
在本实施例中,针对各消息的创建时间字段的创建时间值,可以预先生成用于存储各消息的创建时间值的时间存储文件,在时间存储文件中,依次存储各消息的创建时间字段对应的创建时间,例如,若消息的创建时间(即创建时间值)采用long型的时间戳表示,占用8个子节,那么前8个字节保存第1个消息对应创建时间字段的值,紧接着第9-16字节则存储第2个消息的创建时间值。
本实施例对时间存储文件的具体类型不作限制,例如,时间存储文件可以为mapping后缀文件。
需要说明的是,每个时间存储文件可以存储的消息的数量可以根据实际需求确定,本实施例对此不作限制,例如,可以设定每个时间存储文件存储100万条消息对应的创建时间。
而为了便于后续的消息查找,可以设定时间存储文件的文件名称包含存储的第一条消息的消息编号,例如,“topic_createtime_1”表示将收到的第1条消息作为当前时间存储文件的第一条消息。又如,“topic_createtime_13”表示将收到的第13条消息作为当前时间存储文件的第一条消息。
本实施例通过在时间存储文件中分别查找起始时间信息以及结束时间信息,最终确定起始时间信息对应的第一消息编号,以及,结束时间信息对应的第二消息编号。
在一种实施方式中,步骤102可以包括如下子步骤:
子步骤S11,从所述时间存储文件中,确定所述起始时间信息所属的第一目标时间存储文件,以及,所述结束时间信息所属的第二目标时间存储文件,其中,所述第一目标时间存储文件以及所述第二目标时间存储文件的文件名包含该文件存储的第一条消息的消息编号。
在一种例子中,时间存储文件可以有多个,每个时间存储文件可以存储预设的默认数量的消息,当一个时间存储文件存储的消息达到默认数量时,则采用另一个时间存储文件进行消息的创建时间的存储,以此类推。则当时间存储文件有多个时,每个时间存储文件存储的创建时间值会组成一个创建时间值范围。
在确定起始时间信息以及结束时间信息以后,可以在各时间存储文件对应的创建时间值范围中分配匹配起始时间信息以及结束时间信息,若起始时间信息落入某个创建时间值范围内,则将该创建时间值范围所在的时间存储文件作为第一目标时间存储文件,以及,将结束时间信息落入的创建时间值范围所在的时间存储文件作为第二目标时间存储文件。
在一种实施方式中,为了提高查找效率,可以采用二分查找算法来查找起始时间信息以及结束时间信息,从而确定起始时间信息以及结束时间信息落入的创建时间值范围,并确定第一目标时间存储文件和第二目标时间存储文件。
需要说明的是,第一目标时间存储文件与第二目标时间存储文件可以为相同的文件,也可以为不同的文件,本实施例对此不作限制。
在另一种例子中,当时间存储文件只有一个时,可以直接将该时间存储文件作为第一目标时间存储文件以及第二目标时间存储文件。
子步骤S12,在所述第一目标时间存储文件中查找所述起始时间信息所在的第一存储位置,以及,在所述第二目标时间存储文件中查找所述结束时间信息所在的第二存储位置。
在该步骤中,当确定第一目标时间存储文件以及第二目标时间存储文件以后,可以进一步定位起始时间信息所在的第一存储位置以及结束时间信息所在的第二存储位置。
在一种例子中,假设一个创建时间值在时间存储文件中采用8个字节来存储,则子步骤S12的作用是确定起始时间信息在第一目标时间存储文件是采用哪几个字节来存储的(即第一存储位置),以及,结束时间信息在第二目标时间存储文件是采用哪几个字节来存储的(即第二存储位置)。
在一种实施方式中,在目标时间存储文件中查找起始时间信息或结束时间信息时,为了提高查找效率,也可以采用二分查找算法来分别查找起始时间信息或结束时间信息,从而确定对应的第一存储位置或第二存储位置。
子步骤S13,获取所述第一存储位置以及所述第一目标时间存储文件存储的第一条消息的存储位置之间的第一偏移量,并根据所述第一偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号。
在一种实施方式中,各消息的存储位置占用指定长度的字节,子步骤S13进一步可以包括如下子步骤:根据所述第一偏移量以及所述指定长度,确定所述第一存储位置对应的消息与所述第一目标时间存储文件存储的第一条消息的消息编号的编号偏移量;根据所述编号偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号。
例如,假设各创建时间值占用8个字节进行存储,则第一目标时间存储文件存储的第一条消息的存储位置为第1-8字节,假设起始时间信息对应的第一存储位置为第17-24字节,则两者的第一偏移量为16个字节,即起始时间信息对应的消息与第一条消息之间的编号偏移量为2,则起始时间信息对应的消息为第一目标存储文件保存的第3条消息,假设第一目标时间存储文件存储的第一条消息的消息编号为11,则第一存储位置对应的第一消息编号为13。
子步骤S14,获取所述第二存储位置以及所述第二目标时间存储文件存储的第一条消息的存储位置之间的第二偏移量,并根据所述第二偏移量以及所述第二目标时间存储文件存储的第一条消息的消息编号,确定所述第二存储位置对应的第二消息编号。
在一种实施方式中,子步骤S14进一步可以包括如下子步骤:根据所述第二偏移量以及所述指定长度的字节,确定所述第二存储位置对应的消息与所述第二目标时间存储文件存储的第一条消息的消息编号的编号偏移量;根据所述编号偏移量以及所述第二目标时间存储文件存储的第一条消息的消息编号,确定所述第二存储位置对应的第二消息编号。
例如,延续上例,假设结束时间信息对应的第二存储位置为第73-80字节,则第二存储位置与第二目标时间存储文件存储的第一条消息的存储位置之间的第二偏移量为72个字节,即起始时间信息对应的消息与第一条消息之间编号偏移量为9,则结束时间信息对应的消息为第二目标存储文件保存的第10条消息,假设第二目标时间存储文件存储的第一条消息的消息编号为11,则第二存储位置对应的第二消息编号为20。
又如,延续上例,假设结束时间信息对应的第二存储位置为第17-24字节,则第二存储位置与第二目标时间存储文件存储的第一条消息的存储位置之间的第二偏移量为16个字节,即结束时间信息对应的消息与第一条消息之间的编号偏移量为2,则结束时间信息对应的消息为第二目标存储文件保存的第3条消息,假设第二目标时间存储文件存储的第一条消息的消息编号为21,则第二存储位置对应的第二消息编号为23。
步骤103,获取所述目标业务字段对应的目标字段存储文件,所述目标字段存储文件用于存储各消息中所述目标业务字段对应的字段值。
在本实施例中,除了可以创建用于存储创建时间字段的值的时间存储文件以外,还可以针对消息中的其他字段的字段值进行记录,该字段值可以记录在字段存储文件中。即,字段存储文件存储的是各消息中的指定业务字段的字段值。
与时间存储文件类似,本实施例对字段存储文件的具体类型也不作限制,例如,字段存储文件可以为mapping后缀文件。每个字段存储文件可以存储的消息的数量可以根据实际需求确定,但为了便于后续查找,各字段存储文件中存储的消息的数量需要与各时间存储文件能存储的消息数量一致。同时可以设定字段存储文件的文件名称包含存储的第一条消息的消息编号,示例性地,字段存储文件的文件名称可以以“topic_field_第一条消息的消息编号”命名,例如,“topic_field_1”表示将收到的第1条消息作为当前字段存储文件的第一条消息。又如,“topic_field_13”表示将收到的第13条消息作为当前字段存储文件的第一条消息。
在一种例子中,以下通过一种实施方式介绍字段存储文件记录对应的字段值的过程,则本实施例还可以包括如下步骤:
确定各主题需要记录的指定业务字段;根据所述指定业务字段,依次获取接收的各消息对应的字段值,并将所述字段值存入所述指定业务字段对应的字段存储文件中。
在一种实施方式中,可以采用如下方式确定各主题需要记录的指定业务字段:
定时读取预设的配置文件中记录的各主题对应的配置信息;从所述配置信息中获取所述主题对应的指定业务字段。
其中,该配置文件为根据接收的消息中指定的主题以及指定业务字段生成的文件。具体的,在一种例子中,业务方(或消费方)在发送消息时,可以指定可以需要记录的业务字段(即指定业务字段)。Broker在解析消息时,可以通过配置文件为各topic保存配置,标明哪些业务字段是可以需要记录以便于后续的统计需求的,并且标明每个字段类型,如Long、Integer、Float等。
示例性地,Broker为各topic保存的配置文件的格式可以为json串,例如,如下面配置所示,topic为消息的topic,filelds数组对象中的key为业务字段的名称,type为字段的类型:
Figure BDA0002220168830000101
Figure BDA0002220168830000111
在实现时,Broker可以定时扫描topic的配置文件,根据各消息的各主题topic配置的各指定业务字段生成对应的字段存储文件,该字段存储文件用于依次存储各消息中存储指定业务字段的字段值。
需要说明的是,指定业务字段可以在建立消息topic时指定或业务方(或消费方)在发送消息时指定,本实施例对此不作限制。
在该步骤中,当Broker从汇总请求中确定目标业务字段时,可以定位该目标业务字段对应的目标字段存储文件,以进行后续的统计流程。
步骤104,在所述目标字段存储文件中查找从所述第一消息编号到所述第二消息编号之间的消息对应的字段值,并对查找到的所有字段值进行统计。
例如,针对上例,若第一消息编号为13,第二消息编号为20,查找的目标业务字段为price,则可以获取price对应的字段存储文件作为目标字段存储文件,然后从目标字段存储文件中查找接收到的第13-20条消息之间的字段值进行统计。
在一种实施方式中,步骤104可以包括如下子步骤:
子步骤21,确定保存所述第一消息编号对应的消息的第一目标字段存储文件,以及,保存所述第二消息编号对应的消息的第二目标字段存储文件,其中,所述第一目标字段存储文件以及所述第二目标字段存储文件的文件名包含该文件存储的第一条消息的消息编号。
需要说明的是,第一目标字段存储文件与第二目标字段存储文件可以为相同的文件,也可以为不同的文件,本实施例对此不作限制。
在一种实现中,第一消息编号对应的消息的第一目标字段存储文件,或者,第二消息编号对应的消息的第二目标字段存储文件,可以采用如下方式确定:目标字段存储文件的文件编号=(消息编号-1)/m的比值的整数部分;其中,m为字段存储文件中预设可存储的消息的数量。
例如,假设字段存储文件中可保存10条消息的字段值,假设第一消息编号为13,则第一消息编号对应的消息的字段值所在的第一目标字段存储文件的文件编号为(13-1)/10=1,即第13条消息是保存在第2个字段存储文件里面;同理,假设第二消息编号为20,则第二消息编号对应的消息的字段值所在的第二目标字段存储文件的文件编号为(20-1)/10=1,即第20条消息是保存在第2个字段存储文件里面。
子步骤22,根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号,计算两者的编号偏移量。
例如,针对上例,若第一目标字段存储文件保存的第一条消息的消息编号为11,第一消息编号为13,则两者的编号偏移量为13-11=2。
子步骤23,根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号的编号偏移量以及预设的每个消息编号对应的指定长度的字节,计算所述第一消息编号在所述第一目标字段存储文件中的存储位置,并从所述存储位置中取出对应的字段值。
例如,假设预设的每个消息编号对应的指定长度的字节为8字节,针对上例,第一消息编号与第一目标字段存储文件保存的第一条消息的消息编号的编号偏移量为2,则字节偏移量为16,而第一目标字段存储文件保存的第一条消息的存储位置为第1-8字节,则第一消息编号在第一目标字段存储文件中的存储位置为第17-24字节,因此,可以从第17-24字节中取出对应的字段值。
子步骤24,依次读取位于所述第一消息编号对应的存储位置后的存储位置中存储的字段值,直到读取到所述第二消息编号对应的存储位置的字段值为止。
随后,可以按照子步骤S23的方法读取第14-第20条消息对应的字段值,读取到第20条消息的字段值后,则完成字段值的获取,并汇总获取到的第13-20的字段值的总和。
步骤105,将所述统计得到的统计值返回。
在该步骤中,得到目标业务字段汇总后的统计值以后,可以将该统计值返回业务方或消息方。
为了使得本领域技术人员能够更好地理解本申请,下面列举一个具体的应用场景对本实施例进行示例性说明,但应当理解的是,本实施例并不限于此:
例如,针对订单消息,消费方消费订单消息入库后,订单流水可能不会保存收货地址的信息,则根据现有技术业务方无法对收货地址进行统计。另一方面,即使业务方保存了收货地址的信息,也只能等消息队列里面的消息消费完成入库后才能统计,具有一定的滞后性。此时,应用于本申请的实例中,可以指定收货地址这个字段作为统计字段,则消息队列的Broker由于已经保存了消息,就可以根据指定的统计字段对收货地址进行统计,提高了统计的实时性。
在本实施例中,针对消息队列中的消息,预先创建用于存储消息的创建时间字段的值的时间存储文件以及用于存储各消息的指定业务字段的字段值的字段存储文件,当消息队列存储方接收到统计请求时,可以从统计请求中获取需要统计的目标业务字段、起始时间信息以及结束时间信息,根据起始时间信息以及结束时间信息从时间存储文件中查询出起始时间信息对应的第一消息编号以及结束时间信息对应的第二消息编号,然后根据第一消息编号和第二消息编号从指定业务字段对应的目标字段存储文件中查找出从第一消息编号到第二消息编号之间的消息对应的字段值进行汇总计算,从而能够在消息队列中完成目标业务字段的统计,丰富了业务统计的实现方式,提高了业务统计的实时性。
基于上述的消息处理方法,参照图2,示出了本申请一种消息处理装置实施例的结构框图,所述装置可以应用于消息队列存储方,可以包括如下模块:
请求接收模块201,用于接收统计请求,所述统计请求包括目标业务字段、起始时间信息以及结束时间信息;
消息定位模块202,用于在预设的用于存储消息的创建时间的一个或多个时间存储文件中,分别查找所述起始时间信息以及结束时间信息,以确定所述起始时间信息对应的第一消息编号,以及,所述结束时间信息对应的第二消息编号;
目标字段存储文件获取模块203,用于获取所述目标业务字段对应的目标字段存储文件,所述目标字段存储文件用于存储各消息中所述目标业务字段对应的字段值;
字段值读取模块204,用于在所述目标字段存储文件中查找从所述第一消息编号到所述第二消息编号之间的消息对应的字段值;
字段统计模块205,用于对查找到的所有字段值进行统计;
统计值返回模块206,用于将所述统计得到的统计值返回。
在一种实施方式中,所述消息定位模块202可以包括如下子模块:
目标时间存储文件确定子模块,用于从所述时间存储文件中,确定所述起始时间信息所属的第一目标时间存储文件,以及,所述结束时间信息所属的第二目标时间存储文件,其中,所述第一目标时间存储文件以及所述第二目标时间存储文件的文件名包含该文件存储的第一条消息的消息编号;
存储位置确定子模块,用于在所述第一目标时间存储文件中查找所述起始时间信息所在的第一存储位置,以及,在所述第二目标时间存储文件中查找所述结束时间信息所在的第二存储位置;
第一消息编号确定子模块,用于获取所述第一存储位置以及所述第一目标时间存储文件存储的第一条消息的存储位置之间的第一偏移量,并根据所述第一偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号;
第二消息编号确定子模块,用于获取所述第二存储位置以及所述第二目标时间存储文件存储的第一条消息的存储位置之间的第二偏移量,并根据所述第二偏移量以及所述第二目标时间存储文件存储的第一条消息的消息编号,确定所述第二存储位置对应的第二消息编号。
在一种实施方式中,各消息的存储位置占用指定长度的字节;
所述第一消息编号确定子模块具体用于:
根据所述第一偏移量以及所述指定长度,确定所述第一存储位置对应的消息与所述第一目标时间存储文件存储的第一条消息的消息编号的编号偏移量;
根据所述编号偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号。
在一种实施方式中,所述字段值读取模块204可以包括如下子模块:
目标字段文件确定子模块,用于确定保存所述第一消息编号对应的消息的第一目标字段存储文件,以及,保存所述第二消息编号对应的消息的第二目标字段存储文件,其中,所述第一目标字段存储文件以及所述第二目标字段存储文件的文件名包含该文件存储的第一条消息的消息编号;
编号偏移量确定子模块,用于根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号,计算两者的编号偏移量;
字段值获取子模块,用于根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号的编号偏移量以及预设的每个消息编号对应的指定长度的字节,计算所述第一消息编号在所述第一目标字段存储文件中的存储位置,并从所述存储位置中取出对应的字段值;依次读取位于所述第一消息编号对应的存储位置后的存储位置中存储的字段值,直到读取到所述第二消息编号对应的存储位置的字段值为止。
在一种实施方式中,所述装置还包括:
指定业务字段确定模块,用于在所述接收统计请求之前,确定各主题需要记录的指定业务字段;
字段值记录模块,用于根据所述指定业务字段,依次获取接收的各消息对应的字段值,并将所述字段值存入所述指定业务字段对应的字段存储文件中。
在一种实施方式中,所述指定业务字段确定模块具体用于:
定时读取预设的配置文件中记录的各主题对应的配置信息,其中,所述配置文件为根据接收的消息中指定的主题以及指定业务字段生成;
从所述配置信息中获取所述主题对应的指定业务字段。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种消息处理方法,其特征在于,应用于消息队列存储方,包括:
接收统计请求,所述统计请求包括目标业务字段、起始时间信息以及结束时间信息;
在预设的用于存储消息的创建时间的一个或多个时间存储文件中,分别查找所述起始时间信息以及结束时间信息,以确定所述起始时间信息对应的第一消息编号,以及,所述结束时间信息对应的第二消息编号;
获取所述目标业务字段对应的目标字段存储文件,所述目标字段存储文件用于存储各消息中所述目标业务字段对应的字段值;
在所述目标字段存储文件中查找从所述第一消息编号到所述第二消息编号之间的消息对应的字段值,并对查找到的所有字段值进行统计;
将所述统计得到的统计值返回;
所述在预设的用于存储消息的创建时间的时间存储文件中,分别查找所述起始时间信息以及结束时间信息,以确定所述起始时间信息对应的第一消息编号,以及,所述结束时间信息对应的第二消息编号,包括:
从所述时间存储文件中,确定所述起始时间信息所属的第一目标时间存储文件,以及,所述结束时间信息所属的第二目标时间存储文件,其中,所述第一目标时间存储文件以及所述第二目标时间存储文件的文件名包含该文件存储的第一条消息的消息编号;
在所述第一目标时间存储文件中查找所述起始时间信息所在的第一存储位置,以及,在所述第二目标时间存储文件中查找所述结束时间信息所在的第二存储位置;
获取所述第一存储位置以及所述第一目标时间存储文件存储的第一条消息的存储位置之间的第一偏移量,并根据所述第一偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号;
获取所述第二存储位置以及所述第二目标时间存储文件存储的第一条消息的存储位置之间的第二偏移量,并根据所述第二偏移量以及所述第二目标时间存储文件存储的第一条消息的消息编号,确定所述第二存储位置对应的第二消息编号;
所述在所述目标字段存储文件中查找从所述第一消息编号到所述第二消息编号之间的消息对应的字段值,包括:
确定保存所述第一消息编号对应的消息的第一目标字段存储文件,以及,保存所述第二消息编号对应的消息的第二目标字段存储文件,其中,所述第一目标字段存储文件以及所述第二目标字段存储文件的文件名包含该文件存储的第一条消息的消息编号;
根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号,计算两者的编号偏移量;
根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号的编号偏移量以及预设的每个消息编号对应的指定长度的字节,计算所述第一消息编号在所述第一目标字段存储文件中的存储位置,并从所述存储位置中取出对应的字段值;
依次读取位于所述第一消息编号对应的存储位置后的存储位置中存储的字段值,直到读取到所述第二消息编号对应的存储位置的字段值为止;
各字段存储文件中存储的消息的数量与各时间存储文件能存储的消息数量一致。
2.根据权利要求1所述的方法,其特征在于,各消息的存储位置占用指定长度的字节;
所述根据所述第一偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号,包括:
根据所述第一偏移量以及所述指定长度,确定所述第一存储位置对应的消息与所述第一目标时间存储文件存储的第一条消息的消息编号的编号偏移量;
根据所述编号偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号。
3.根据权利要求1-2任一项所述的方法,其特征在于,在所述接收统计请求之前,所述方法还包括:
确定各主题需要记录的指定业务字段;
根据所述指定业务字段,依次获取接收的各消息对应的字段值,并将所述字段值存入所述指定业务字段对应的字段存储文件中。
4.根据权利要求3所述的方法,其特征在于,所述确定各主题需要记录的指定业务字段,包括:
定时读取预设的配置文件中记录的各主题对应的配置信息,其中,所述配置文件为根据接收的消息中指定的主题以及指定业务字段生成;
从所述配置信息中获取所述主题对应的指定业务字段。
5.一种消息处理装置,其特征在于,应用于消息队列存储方,包括:
请求接收模块,用于接收统计请求,所述统计请求包括目标业务字段、起始时间信息以及结束时间信息;
消息定位模块,用于在预设的用于存储消息的创建时间的一个或多个时间存储文件中,分别查找所述起始时间信息以及结束时间信息,以确定所述起始时间信息对应的第一消息编号,以及,所述结束时间信息对应的第二消息编号;
目标字段存储文件获取模块,用于获取所述目标业务字段对应的目标字段存储文件,所述目标字段存储文件用于存储各消息中所述目标业务字段对应的字段值;
字段值读取模块,用于在所述目标字段存储文件中查找从所述第一消息编号到所述第二消息编号之间的消息对应的字段值;
字段统计模块,用于对查找到的所有字段值进行统计;
统计值返回模块,用于将所述统计得到的统计值返回;
所述消息定位模块包括:
目标时间存储文件确定子模块,用于从所述时间存储文件中,确定所述起始时间信息所属的第一目标时间存储文件,以及,所述结束时间信息所属的第二目标时间存储文件,其中,所述第一目标时间存储文件以及所述第二目标时间存储文件的文件名包含该文件存储的第一条消息的消息编号;
存储位置确定子模块,用于在所述第一目标时间存储文件中查找所述起始时间信息所在的第一存储位置,以及,在所述第二目标时间存储文件中查找所述结束时间信息所在的第二存储位置;
第一消息编号确定子模块,用于获取所述第一存储位置以及所述第一目标时间存储文件存储的第一条消息的存储位置之间的第一偏移量,并根据所述第一偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号;
第二消息编号确定子模块,用于获取所述第二存储位置以及所述第二目标时间存储文件存储的第一条消息的存储位置之间的第二偏移量,并根据所述第二偏移量以及所述第二目标时间存储文件存储的第一条消息的消息编号,确定所述第二存储位置对应的第二消息编号;
所述字段值读取模块包括:
目标字段文件确定子模块,用于确定保存所述第一消息编号对应的消息的第一目标字段存储文件,以及,保存所述第二消息编号对应的消息的第二目标字段存储文件,其中,所述第一目标字段存储文件以及所述第二目标字段存储文件的文件名包含该文件存储的第一条消息的消息编号;
编号偏移量确定子模块,用于根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号,计算两者的编号偏移量;
字段值获取子模块,用于根据所述第一消息编号以及所述第一目标字段存储文件保存的第一条消息的消息编号的编号偏移量以及预设的每个消息编号对应的指定长度的字节,计算所述第一消息编号在所述第一目标字段存储文件中的存储位置,并从所述存储位置中取出对应的字段值;依次读取位于所述第一消息编号对应的存储位置后的存储位置中存储的字段值,直到读取到所述第二消息编号对应的存储位置的字段值为止;
各字段存储文件中存储的消息的数量与各时间存储文件能存储的消息数量一致。
6.根据权利要求5所述的装置,其特征在于,各消息的存储位置占用指定长度的字节;
所述第一消息编号确定子模块具体用于:
根据所述第一偏移量以及所述指定长度,确定所述第一存储位置对应的消息与所述第一目标时间存储文件存储的第一条消息的消息编号的编号偏移量;
根据所述编号偏移量以及所述第一目标时间存储文件存储的第一条消息的消息编号,确定所述第一存储位置对应的第一消息编号。
7.根据权利要求5-6任一项所述的装置,其特征在于,所述装置还包括:
指定业务字段确定模块,用于在所述接收统计请求之前,确定各主题需要记录的指定业务字段;
字段值记录模块,用于根据所述指定业务字段,依次获取接收的各消息对应的字段值,并将所述字段值存入所述指定业务字段对应的字段存储文件中。
8.根据权利要求7所述的装置,其特征在于,所述指定业务字段确定模块具体用于:
定时读取预设的配置文件中记录的各主题对应的配置信息,其中,所述配置文件为根据接收的消息中指定的主题以及指定业务字段生成;
从所述配置信息中获取所述主题对应的指定业务字段。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-4任一项所述的方法。
10.一种存储介质,当所述存储介质中的指令由电子 设备的处理器执行时,使得所述电子设备能够执行如权利要求1-4中任一项所述的方法。
CN201910947110.1A 2019-09-29 2019-09-29 一种消息处理方法及装置 Active CN110704212B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910947110.1A CN110704212B (zh) 2019-09-29 2019-09-29 一种消息处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910947110.1A CN110704212B (zh) 2019-09-29 2019-09-29 一种消息处理方法及装置

Publications (2)

Publication Number Publication Date
CN110704212A CN110704212A (zh) 2020-01-17
CN110704212B true CN110704212B (zh) 2022-04-22

Family

ID=69196620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910947110.1A Active CN110704212B (zh) 2019-09-29 2019-09-29 一种消息处理方法及装置

Country Status (1)

Country Link
CN (1) CN110704212B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111639138B (zh) * 2020-06-03 2023-04-25 中国联合网络通信集团有限公司 数据处理方法、装置、设备及存储介质
CN116192542A (zh) * 2022-12-06 2023-05-30 中国联合网络通信集团有限公司 数据流量的计费方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649627A (zh) * 2016-12-06 2017-05-10 杭州迪普科技股份有限公司 一种日志查找的方法和装置
CN106886558A (zh) * 2016-12-28 2017-06-23 浙江宇视科技有限公司 一种数据处理方法以及服务器
CN107070888A (zh) * 2017-03-09 2017-08-18 北京聚睿智能科技有限公司 网关安全管理方法和设备
CN107704329A (zh) * 2017-10-16 2018-02-16 中汇信息技术(上海)有限公司 一种消息持久化方法、服务器和计算机可读存储介质
CN109726024A (zh) * 2018-12-28 2019-05-07 北京爱奇艺科技有限公司 一种消息延时投递方法、装置及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104040542B (zh) * 2011-12-08 2017-10-10 甲骨文国际公司 用于在易失性存储器内保持关系型数据的列向量的技术
US20160192308A1 (en) * 2014-08-11 2016-06-30 Dylan Elliot Turney Mobile Device Synchronization of Screen Content and Audio
CN110109873B (zh) * 2019-05-08 2023-04-07 重庆大学 一种用于消息队列的文件管理方法
CN110232049A (zh) * 2019-06-12 2019-09-13 腾讯科技(深圳)有限公司 一种元数据缓存管理方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649627A (zh) * 2016-12-06 2017-05-10 杭州迪普科技股份有限公司 一种日志查找的方法和装置
CN106886558A (zh) * 2016-12-28 2017-06-23 浙江宇视科技有限公司 一种数据处理方法以及服务器
CN107070888A (zh) * 2017-03-09 2017-08-18 北京聚睿智能科技有限公司 网关安全管理方法和设备
CN107704329A (zh) * 2017-10-16 2018-02-16 中汇信息技术(上海)有限公司 一种消息持久化方法、服务器和计算机可读存储介质
CN109726024A (zh) * 2018-12-28 2019-05-07 北京爱奇艺科技有限公司 一种消息延时投递方法、装置及设备

Also Published As

Publication number Publication date
CN110704212A (zh) 2020-01-17

Similar Documents

Publication Publication Date Title
CN107395697B (zh) 推送渠道选择、消息推送方法、装置及设备、可读介质
US8195757B2 (en) Method, apparatus and computer program for controlling retention of publications
CN108810657B (zh) 一种设置视频封面的方法和系统
CN110704212B (zh) 一种消息处理方法及装置
CN112925661A (zh) 消息处理方法、装置、计算机设备及存储介质
JP2004531839A (ja) 別個のメディアコンポーネント格納装置を用いた統一メッセージング
CN113391979A (zh) 监控数据展示的处理方法、设备、系统及存储介质
CN110311855B (zh) 用户消息处理方法、装置、电子设备及存储介质
CN113938522A (zh) 事件消息传输方法、系统、设备和计算机存储介质
CN110069533B (zh) 一种基于区块链的事件订阅方法及装置
CN110995801A (zh) 一种服务调用的方法及装置
US8510426B2 (en) Communication and coordination between web services in a cloud-based computing environment
CN113645260A (zh) 业务重试方法、装置、存储介质及电子设备
CN110865973B (zh) 一种数据处理方法及设备和相关装置
CN114221925B (zh) 消息推送方法、装置、电子设备及存储介质
CN112860720B (zh) 一种存储容量的更新方法以及装置
CN114897532A (zh) 操作日志处理方法、系统、装置、设备和存储介质
CN113132928B (zh) 视频短信业务的计费方法及装置
CN103914477A (zh) 一种数据处理方法和装置
CN113296973A (zh) 一种消息处理方法、消息读取方法、装置及可读介质
CN114449031B (zh) 信息获取方法、装置、设备和存储介质
CN114915652B (zh) 一种消息推送方法、装置、电子设备及存储介质
CN113127012B (zh) 一种基于软件引擎的软件资源构建方法
CN115529288B (zh) 一种消息推送的方法、装置、计算机设备
CN114697292A (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