CN114553815A - 一种对消息进行处理的方法及装置 - Google Patents

一种对消息进行处理的方法及装置 Download PDF

Info

Publication number
CN114553815A
CN114553815A CN202210112266.XA CN202210112266A CN114553815A CN 114553815 A CN114553815 A CN 114553815A CN 202210112266 A CN202210112266 A CN 202210112266A CN 114553815 A CN114553815 A CN 114553815A
Authority
CN
China
Prior art keywords
message
pushed
data
array
identifier
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
Application number
CN202210112266.XA
Other languages
English (en)
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.)
Beijing Jindi Technology Co Ltd
Original Assignee
Beijing Jindi 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 Beijing Jindi Technology Co Ltd filed Critical Beijing Jindi Technology Co Ltd
Priority to CN202210112266.XA priority Critical patent/CN114553815A/zh
Publication of CN114553815A publication Critical patent/CN114553815A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种对消息进行处理的方法及装置,其中该方法包括:在接收到待推送的消息时,对待推送的消息进行解析以获取待推送的消息的全局标识符;基于全局标识符,计算与待推送的消息相关联的多个数据标识,并基于多个数据标识,在数据缓存中确定与待推送的消息相对应的标志位;以及基于与待推送的消息相对应的标志位的当前值,对待推送的消息进行处理。本发明提供的一种对消息进行处理的方法及装置,在高并发的场景下,针对于相同用户或客户,可以实现对先请求的推送消息进行发送,对后请求的相同推送消息进行拦截,保证了用户体验。

Description

一种对消息进行处理的方法及装置
技术领域
本发明涉及信息处理技术领域,尤其涉及一种对消息进行处理的方法及装置、计算机可读存储介质、电子设备以及计算机程序产品。
背景技术
对于相同数据,企业内多业务场景均可能使用同一数据源。这种情况可能会导致多业务方调用相同的数据并给同一用户发送了内容相同或相似的推送消息。这种重复的推送消息对用户体验的影响较大,因此需要对相同数据的请求进行限制,且如果短时间内多业务方调用相同数据,还会存在高并发的问题,需要同时对该问题进行处理。
发明内容
鉴于此,对于相同数据的多业务方调用情况,本发明基于时间优先的原则,即先请求推送的消息优先进行推送,后请求推送的相同消息进行拦截,以防止相同消息的重复推送,且在高并发的前提下也能保证拦截重复推送消息的有效性。
基于本发明实施例的一个方面,提供了一种对消息进行处理的方法,所述方法包括:
在接收到待推送的消息时,对所述待推送的消息进行解析以获取所述待推送的消息的全局标识符;
基于所述全局标识符,计算与所述待推送的消息相关联的多个数据标识,并基于所述多个数据标识,在数据缓存中确定与所述待推送的消息相对应的标志位;以及
基于与所述待推送的消息相对应的标志位的当前值,对所述待推送的消息进行处理。
可选地,在接收到待推送的消息之前,所述方法还包括:
基于数据源中的数据内容生成所述待推送的消息;
生成用于标识所述待推送的消息的全局唯一键值,并在所述待推送的消息中附加所述全局唯一键值。
可选地,所述生成用于标识所述待推送的消息的全局唯一键值,包括:
获取所述待推送的消息的业务标识和事物标识,其中所述业务标识用于标识所述待推送的消息所归属的业务类型,所述事物标识用于标识所述待推送的消息的事物名称;
确定在所述数据源中生成所述待推送的消息的生成时间;
基于所述业务标识、事物标识和生成时间,生成用于标识所述待推送的消息的全局唯一键值。
可选地,所述方法还包括:
业务方从所述数据源提取所述待推送的消息,确定所述待推送的消息的目标用户;
对所述待推送的消息进行解析,以获取所述全局唯一键值;
基于所述待推送的消息的全局唯一键值和所述目标用户的用户标识符,生成所述待推送的消息的全局标识符,并将所述全局标识符附加到所述待推送的消息中。
可选地,所述基于所述全局标识符,计算与所述待推送的消息相关联的多个数据标识,包括:
利用多个映射函数中的每个映射函数对所述全局标识符进行计算,以获得相应的多个映射值;
基于多个映射值,获得与所述待推送的消息相关联的多个数据标识。
可选地,所述基于多个映射值,获得与所述待推送的消息相关联的多个数据标识,包括:
将多个映射值中的每个映射值依次序进行取余运算,以获得由多个余数构成的余数序列;
按照所述余数序列中的次序,将多个余数作为与所述待推送的消息相关联的多个数据标识。
可选地,在基于所述多个数据标识,在数据缓存中确定与所述待推送的消息相对应的标志位之前,所述方法还包括:
在所述数据缓存中创建数组容器,为所述数组容器中的每个数组设置预定数量的数组下标,其中所述预定数量与数据标识的数量相同。
可选地,所述基于所述多个数据标识,在数据缓存中确定与所述待推送的消息相对应的标志位,包括:
基于所述多个数据标识确定与所述待推送的消息相对应的数组的数组下标;
根据所述数组下标在所述数据缓存的数组容器中,检索与所述待推送的消息相对应的数组;
根据所述数组的内容值,确定与所述待推送的消息相对应的标志位。
可选地,所述基于与所述待推送的消息相对应的标志位的当前值,对所述待推送的消息进行处理,包括:
基于与所述待推送的消息相对应的标志位的当前值,确定所述待推送的消息是否为重复发送的消息;
当所述待推送的消息不是重复发送的消息时,将所述待推送的消息放置到相关联的消息推送队列中,并向所述待推送的消息的业务方发送指示消息发送就绪的响应消息;
当所述待推送的消息是重复发送的消息时,不将所述待推送的消息放置到相关联的消息推送队列中,并向所述待推送的消息的业务方发送指示消息重复的响应消息。
基于本发明实施例的另一方面,提供了一种对消息进行处理的装置,所述装置包括:
解析单元,用于在接收到待推送的消息时,对所述待推送的消息进行解析以获取所述待推送的消息的全局标识符;
计算单元,用于基于所述全局标识符,计算与所述待推送的消息相关联的多个数据标识,并基于所述多个数据标识,在数据缓存中确定与所述待推送的消息相对应的标志位;以及
处理单元,用于基于与所述待推送的消息相对应的标志位的当前值,对所述待推送的消息进行处理。
可选地,所述装置还包括:生成单元,用于基于数据源中的数据内容生成所述待推送的消息;生成用于标识所述待推送的消息的全局唯一键值,并在所述待推送的消息中附加所述全局唯一键值。
可选地,所述生成单元包括:
获取子单元,用于获取所述待推送的消息的业务标识和事物标识,其中所述业务标识用于标识所述待推送的消息所归属的业务类型,所述事物标识用于标识所述待推送的消息的事物名称;
第一确定子单元,用于确定在所述数据源中生成所述待推送的消息的生成时间;
生成子单元,用于基于所述业务标识、事物标识和生成时间,生成用于标识所述待推送的消息的全局唯一键值。
可选地,所述生成单元还包括:
第二确定子单元,用于促使业务方从所述数据源提取所述待推送的消息,确定所述待推送的消息的目标用户;
解析子单元,用于对所述待推送的消息进行解析,以获取所述全局唯一键值;
附加子单元,用于基于所述待推送的消息的全局唯一键值和所述目标用户的用户标识符,生成所述待推送的消息的全局标识符,并将所述全局标识符附加到所述待推送的消息中。
可选地,所述计算单元包括:
计算子单元,用于利用多个映射函数中的每个映射函数对所述全局标识符进行计算,以获得相应的多个映射值;
获得子单元,用于基于多个映射值,获得与所述待推送的消息相关联的多个数据标识。
可选地,所述获得子单元具体用于将多个映射值中的每个映射值依次序进行取余运算,以获得由多个余数构成的余数序列;按照所述余数序列中的次序,将多个余数作为与所述待推送的消息相关联的多个数据标识。
可选地,所述装置还包括:创建单元,用于在所述数据缓存中创建数组容器,为所述数组容器中的每个数组设置预定数量的数组下标,其中所述预定数量与数据标识的数量相同。
可选地,所述计算单元还包括:
第三确定子单元,用于基于所述多个数据标识确定与所述待推送的消息相对应的数组的数组下标;
检索子单元,用于根据所述数组下标在所述数据缓存的数组容器中,检索与所述待推送的消息相对应的数组;
第四确定子单元,用于根据所述数组的内容值,确定与所述待推送的消息相对应的标志位。
可选地,所述处理单元包括:
第五确定子单元,用于基于与所述待推送的消息相对应的标志位的当前值,确定所述待推送的消息是否为重复发送的消息;
处理子单元,用于当所述待推送的消息不是重复发送的消息时,将所述待推送的消息放置到相关联的消息推送队列中,并向所述待推送的消息的业务方发送指示消息发送就绪的响应消息;当所述待推送的消息是重复发送的消息时,不将所述待推送的消息放置到相关联的消息推送队列中,并向所述待推送的消息的业务方发送指示消息重复的响应消息。
基于本发明实施例的又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于执行上述任一实施例所述的方法。
基于本发明实施例的再一方面,提供了一种电子设备,所述电子设备包括:处理器和存储器;其中,
所述存储器,用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一实施例所述的方法。
基于本发明实施例的再一方面,提供了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现上述任一实施例所述的方法。
基于本发明上述实施例提供的一种对消息进行处理的方法及装置、计算机可读存储介质、电子设备以及计算机程序产品,对于相同数据的多业务方调用场景,即使是高并发的情况下,也能够根据先到先发、后到不发的原则进行发送或推送,即,即使在高并发的场景下,针对于相同用户或客户,可以实现对先请求的推送消息进行发送,对后请求的相同推送消息进行拦截,从而保证了用户体验。此外,在高并发的情况下,仍能够准确地通过程序对多业务方调用场景下的接口调用发送请求进行逐一地过滤,避免重复发送相同推送消息给同一用户或客户的情况。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本发明一示例性实施例提供的对消息进行处理的方法的流程图;
图2是本发明另一示例性实施例提供的对消息进行处理的方法的流程图;
图3是本发明一示例性实施例提供的对消息进行处理的装置的结构示意图;
图4是本发明一示例性实施例提供的电子设备的示意图。
具体实施方式
下面,将参考附图详细地描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
本领域技术人员可以理解,本发明实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本发明实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本发明实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本发明对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本发明实施例提供了一种对消息进行处理的方法,该方法包括:对接收到的待推送消息进行解析以获取所述待推送的消息的全局标识符。基于所述全局标识符,计算与所述待推送的消息相关联的多个数据标识,并基于所述多个数据标识,确定与所述待推送的消息相对应的标志位并基于标志位的当前值,对所述待推送的消息进行处理。由于标志位可以使用单个比特位进行表示,例如当前值为0或1,所以本发明实施例的技术方案占用内存小且信息处理效率高。
图1是本发明一示例性实施例提供的对消息进行处理的方法的流程图。该方法包括:
步骤101,在接收到待推送的消息时,对待推送的消息进行解析以获取待推送的消息的全局标识符。优选地,为了对待推送的消息进行处理,从而避免多个业务方将相同的消息分别推送给同一用户和客户,首先需要对待推送的消息进行识别,从而基于对待推送的消息的识别结果进行后续处理。为此,在接收到待推送的消息时,对待推送的消息进行解析以获取待推送的消息的全局标识符。例如,待推送的消息中附加了全局标识符,并且全局标识符是能够唯一地标识或区分待推送的消息的标识符。
在一个实施例中,在接收到待推送的消息之前,该方法还包括:基于数据源中的数据内容生成待推送的消息;生成用于标识待推送的消息的全局唯一键值,并在待推送的消息中附加全局唯一键值。优选地,多个业务方可以使用统一的数据源,并且因此数据源中的数据能够保证数据一致性。应当了解的是,业务方可以是能够从数据源获取待推送的消息,并根据预先设定的推送规则、推送策略或推送计划向相关联的每个用户或客户提供或发送待推送的消息的业务提供者、业务提供设备、服务提供者、服务提供设备或服务提供方。为了能够给每个用户推送用户所希望或定制的消息,由数据源基于定时或最新的数据内容生成待推送的消息。多个业务方均可以从数据源获取基于定时或最新的数据内容生成待推送的消息。优选地,为了能够对待推送的消息进行标识或区别,从而判断多个业务方的待推送的消息是否为相同的消息,生成用于标识待推送的消息的全局唯一键值。
在一个实施例中,生成用于标识待推送的消息的全局唯一键值包括:获取待推送的消息的业务标识和事物标识,其中业务标识用于标识待推送的消息所归属的业务类型,事物标识用于标识待推送的消息的事物名称。优选地,在基于数据源中的数据内容生成待推送的消息时,可以确定所生成的待推送的消息所归属的业务类型和事物名称。其中所归属的业务类型可以是与待推送的消息相关联的业务的业务名称,或待推送的消息所归属的业务线的业务线名称,例如,风险提示业务、企业风险提示业务、新闻业务、法律风险提示业务等。应当了解的是,可以将业务定义或划分为各种功能层级的业务分类,例如,风险提示业务、企业风险提示业务和法律风险提示业务是逐渐细化的业务分类。事物名称是能够描述待推送的消息的消息内容的信息,例如,事物名称可以是待推送的消息的标题、内容概述等。其中业务标识和事物标识均可以使用各种语言,例如,汉字、英文等。
在一个实施例中,该方法还包括:确定在数据源中生成待推送的消息的生成时间。生成时间可以使用各种精度的时间类型。生成时间可以包括年月日,例如,生成时间为20220108(2022年1月8日);可以包括年月日小时,例如,生成时间为2022010809(2022年1月8日9点);可以包括年月日小时分秒,例如,生成时间为20220108090608(2022年1月8日9时6分8秒)。进一步地,生成时间可以在年月日小时分秒后,包括毫秒,例如,生成时间为20220108090608096(2022年1月8日9时6分8秒96毫秒)。应当了解的是,本发明根据数据源中生成待推送的消息的数量或时间密度来确定生成时间的精度,从而确保不同的待推送的消息的生成时间不同。
在一个实施例中,该方法还包括:基于业务标识、事物标识和生成时间,生成用于标识待推送的消息的全局唯一键值。优选地,可以按照任意顺序,将业务标识、事物标识和生成时间的字符进行组合或拼接以生成待推送的消息的全局唯一键值unique_key,如图2所示,Push推送消息接口的人群过滤防止重复下发机制包括:对于数据源一致或数据源相同的每个业务方(如图2中示出的三个业务方),采用业务ID+事物ID+时间(例如,日期、具体时间等)作为推送消息的唯一键值unique_key(全局唯一键值unique_key)。在生成推送消息的唯一键值unique_key后,待推送的消息中附加全局唯一键值。例如,在对用户端使用推送消息时,需要在推送消息中附带唯一键值unique_key。
在一个实施例中,该方法还包括:业务方从数据源提取待推送的消息,确定待推送的消息的目标用户。业务方可以为一个或多个用户或客户提供服务,并且业务方可以为每个用户提供用户所需的定制推送消息或不同的推送消息。为此,业务方从数据源提取待推送的消息,从多个用户中选择与待推送的消息相关联、希望获取待推送的消息或预定了待推送的消息的目标用户,从而确定待推送的消息的目标用户。由于在生成推送消息的唯一键值后,待推送的消息中附加全局唯一键值,因此通过对待推送的消息进行解析,能够获取全局唯一键值。
在一个实施例中,基于待推送的消息的全局唯一键值和目标用户的用户标识符,生成待推送的消息的全局标识符,并将全局标识符附加到待推送的消息中。具体地,在对用户端使用推送消息时,需要在推送消息中附带唯一键值unique_key,并且随后,服务端使用unique_key+@+user的拼接作为唯一字符串,即全局标识符。其中user为目标用户的标识符或能够标识目标用户的字符串。
步骤102,基于全局标识符,计算与待推送的消息相关联的多个数据标识,并基于多个数据标识,在数据缓存中确定与待推送的消息相对应的标志位。优选地,为了能够标识待推送的消息是否已经重复,在数据缓存中为待推送的消息设置标识位,以使得通过标识位能够确定是否已经推送或安排推送了相同的待推送的消息。
在一个实施例中,基于全局标识符,计算与待推送的消息相关联的多个数据标识,包括:利用多个映射函数中的每个映射函数对全局标识符进行计算,以获得相应的多个映射值;基于多个映射值,获得与待推送的消息相关联的多个数据标识。优选地,映射函数可以是任意合理的哈希函数并且映射值可以是哈希值。利用多个哈希函数中的每个哈希函数对全局标识符进行计算,以获得相应的多个哈希值。随后,基于多个哈希值,获得与待推送的消息相关联的多个数据标识。当数据缓存中使用多个数组作为待推送的消息的标识位时,数据标识例如是数组下标。通过诸如数组下标的数据标识可以确定待推送的消息在数据缓存中的标识位的地址。
在一个实施例中,基于多个映射值,获得与待推送的消息相关联的多个数据标识,包括:将多个映射值中的每个映射值依次序进行取余运算,以获得由多个余数构成的余数序列;按照余数序列中的次序,将多个余数作为与待推送的消息相关联的多个数据标识。优选地,将多个映射值中的每个映射值依次序进行取余运算包括:确定每个映射值,即哈希值,的序列长度;确定与序列长度最近的最大质数(即,基于序列长度所确定的最大质数);将每个哈希值依次序对这个最大质数进行取余运算,以获得由多个余数构成的余数序列。将哈希值对最大质数进行取余运算,可以有效地防止哈希冲突。如图2所示,在一个实例中,采用“哈希MAP(映射)”中的“除留余数法”,对字符串进行三次哈希计算获得三个数组下标。例如,在使用应用程序接口API+filter过滤器的方式中,计算索引或数据标识:index=h(unique_key+user)mod size,其中index为索引或数据标识,unique_key为全局唯一键值,user为用户或客户的标识符,h(unique_key+user)为对全局唯一键值unique_key和用户或客户的标识符所构成的全局标识符(全局唯一标识符)计算哈希,mod为取余计算符以及size为最大质数。采用远程字典服务redis的比特bit类型作为数组容器大小为7千万;使用这三个下标去该容器找到标志位。即,数组容器中的每个数组可以作为相应的待推送的消息的标志位或标识位。
在一个实施例中,在基于多个数据标识,在数据缓存中确定与待推送的消息相对应的标志位之前,该方法还包括:在数据缓存中创建数组容器,为数组容器中的每个数组设置预定数量的数组下标,其中预定数量与数据标识的数量相同。优选地,在数据缓存中创建包括多个数组的数组容器,并且设置数组下标的预定位数或预定数量。即,由预定位数或预定数量的数组下标来标识数组容器中的每个数组。应当了解的是,预定位数越多或预定数量越大,则数组容器中的数组的数量越多,从而能够表示或标识的待递送的消息越多。预定位数越少或预定数量越小,则数组容器中的数组的数量越少,从而能够表示或标识的待递送的消息越少。优选地,由于将每个数据标识或数组下标均用于标识待递送的消息,因此预定数量与数据标识的数量相同。
在一个实施例中,基于多个数据标识,在数据缓存中确定与待推送的消息相对应的标志位,包括:基于多个数据标识确定与待推送的消息相对应的数组的数组下标;根据所述数组下标在所述数据缓存的数组容器中,检索与所述待推送的消息相对应的数组;根据数组的内容值,确定与待推送的消息相对应的标志位。例如,当存在三个数据标识[index,index,index]:第一数据标识、第二数据标识和第三数据标识时,将第一数据标识作为数组容器中数组的第一数组下标、将第二数据标识作为数组容器中数组的第二数组下标和将第三数据标识作为数组容器中数组的第三数组下标。随后,根据第一数组下标、第二数组下标和第三数组下标在数据缓存的数组容器中,检索与待推送的消息相对应的数组。即相对应的数组的三个数组下标为第一数组下标、第二数组下标和第三数组下标。根据与待推送的消息相对应的数组的内容值,确定与待推送的消息相对应的标志位。例如,对应位都为1命中则重复,禁止推送该用户以防止重复发送。反之,则允许推送该用户,并修改对应位为1,代表这个用户已发送过该条推送信息。由于使用的是bit字节0和1,所以这种方式占用内存小,且效率高。
步骤103,基于与待推送的消息相对应的标志位的当前值,对待推送的消息进行处理。在一个实施例中,基于与待推送的消息相对应的标志位的当前值,对待推送的消息进行处理,包括:基于与待推送的消息相对应的标志位的当前值,确定待推送的消息是否为重复发送的消息。例如,标志位的值可以为1或0。当标志位为1时,表明待推送的消息是重复发送的消息,即已经发送过或已经计划发送与待推送的消息相同的推送消息。当标志位为0时,表明待推送的消息不是重复发送的消息,即没有发送过或没有计划发送与待推送的消息相同的推送消息。
优选地,当待推送的消息不是重复发送的消息时,将待推送的消息放置到相关联的消息推送队列中,并向待推送的消息的业务方发送指示消息发送就绪的响应消息;当待推送的消息是重复发送的消息时,不将所述待推送的消息放置到相关联的消息推送队列中,并向所述待推送的消息的业务方发送指示消息重复的响应消息。对于待推送的消息是重复发送的消息,可以将待推送的消息进行丢弃。
图3是本发明一示例性实施例提供的对消息进行处理的装置的结构示意图。该装置包括:解析单元301、计算单元302、处理单元303、生成单元304以及创建单元305。
解析单元301,用于在接收到待推送的消息时,对待推送的消息进行解析以获取待推送的消息的全局标识符。
计算单元302,用于基于全局标识符,计算与待推送的消息相关联的多个数据标识,并基于多个数据标识,在数据缓存中确定与待推送的消息相对应的标志位。
处理单元303,用于基于与待推送的消息相对应的标志位的当前值,对待推送的消息进行处理。
在一个实施例中,处理单元303包括:
第五确定子单元,用于基于与待推送的消息相对应的标志位的当前值,确定待推送的消息是否为重复发送的消息;
处理子单元,用于当待推送的消息不是重复发送的消息时,将待推送的消息放置到相关联的消息推送队列中,并向待推送的消息的业务方发送指示消息发送就绪的响应消息;当待推送的消息是重复发送的消息时,不将待推送的消息放置到相关联的消息推送队列中,并向待推送的消息的业务方发送指示消息重复的响应消息。
生成单元304,用于基于数据源中的数据内容生成待推送的消息;生成用于标识待推送的消息的全局唯一键值,并在待推送的消息中附加全局唯一键值。
在一个实施例中,生成单元304包括:
获取子单元,用于获取待推送的消息的业务标识和事物标识,其中业务标识用于标识待推送的消息所归属的业务类型,事物标识用于标识待推送的消息的事物名称;
第一确定子单元,用于确定在数据源中生成待推送的消息的生成时间;
生成子单元,用于基于业务标识、事物标识和生成时间,生成用于标识待推送的消息的全局唯一键值。
在一个实施例中,生成单元304还包括:
第二确定子单元,用于促使业务方从数据源提取待推送的消息,确定待推送的消息的目标用户;
解析子单元,用于对待推送的消息进行解析,以获取全局唯一键值;
附加子单元,用于基于待推送的消息的全局唯一键值和目标用户的用户标识符,生成待推送的消息的全局标识符,并将全局标识符附加到待推送的消息中。
在一个实施例中,计算单元302包括:
计算子单元,用于利用多个映射函数中的每个映射函数对全局标识符进行计算,以获得相应的多个映射值;
获得子单元,用于基于多个映射值,获得与待推送的消息相关联的多个数据标识。
优选地,获得子单元具体用于将多个映射值中的每个映射值依次序进行取余运算,以获得由多个余数构成的余数序列;按照余数序列中的次序,将多个余数作为与待推送的消息相关联的多个数据标识。
在一个实施例中,计算单元302还包括:
第三确定子单元,用于基于多个数据标识确定与待推送的消息相对应的数组的数组下标;
检索子单元,用于根据数组下标在数据缓存的数组容器中,检索与待推送的消息相对应的数组;
第四确定子单元,用于根据数组的内容值,确定与待推送的消息相对应的标志位。
创建单元305,用于在数据缓存中创建数组容器,为数组容器中的每个数组设置预定数量的数组下标,其中预定数量与数据标识的数量相同。
本发明一示例性实施例提供了一种电子设备,该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。图4是本发明一示例性实施例提供的电子设备的示意图。如图4所示,电子设备400包括一个或多个处理器410和存储器420。
处理器410可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器420可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器410可以运行所述程序指令,以实现上文所述的本发明的各个实施例的软件程序的对消息进行处理的方法以及/或者其他期望的功能。在一个示例中,电子设备还可以包括:输入装置430和输出装置440,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置430还可以包括例如键盘、鼠标等等。
该输出装置440可以向外部输出各种信息。该输出装置440可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图4中仅示出了该电子设备中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的对消息进行处理的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的对消息进行处理的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,在本发明中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
还需要指出的是,在本发明的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (12)

1.一种对消息进行处理的方法,其特征在于,所述方法包括:
在接收到待推送的消息时,对所述待推送的消息进行解析以获取所述待推送的消息的全局标识符;
基于所述全局标识符,计算与所述待推送的消息相关联的多个数据标识,并基于所述多个数据标识,在数据缓存中确定与所述待推送的消息相对应的标志位;以及
基于与所述待推送的消息相对应的标志位的当前值,对所述待推送的消息进行处理。
2.根据权利要求1所述的方法,其特征在于,在接收到待推送的消息之前,所述方法还包括:
基于数据源中的数据内容生成所述待推送的消息;
生成用于标识所述待推送的消息的全局唯一键值,并在所述待推送的消息中附加所述全局唯一键值。
3.根据权利要求2所述的方法,其特征在于,所述生成用于标识所述待推送的消息的全局唯一键值,包括:
获取所述待推送的消息的业务标识和事物标识,其中所述业务标识用于标识所述待推送的消息所归属的业务类型,所述事物标识用于标识所述待推送的消息的事物名称;
确定在所述数据源中生成所述待推送的消息的生成时间;
基于所述业务标识、事物标识和生成时间,生成用于标识所述待推送的消息的全局唯一键值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
业务方从所述数据源提取所述待推送的消息,确定所述待推送的消息的目标用户;
对所述待推送的消息进行解析,以获取所述全局唯一键值;
基于所述待推送的消息的全局唯一键值和所述目标用户的用户标识符,生成所述待推送的消息的全局标识符,并将所述全局标识符附加到所述待推送的消息中。
5.根据权利要求1或4所述的方法,其特征在于,所述基于所述全局标识符,计算与所述待推送的消息相关联的多个数据标识,包括:
利用多个映射函数中的每个映射函数对所述全局标识符进行计算,以获得相应的多个映射值;
基于多个映射值,获得与所述待推送的消息相关联的多个数据标识。
6.根据权利要求5所述的方法,其特征在于,所述基于多个映射值,获得与所述待推送的消息相关联的多个数据标识,包括:
将多个映射值中的每个映射值依次序进行取余运算,以获得由多个余数构成的余数序列;
按照所述余数序列中的次序,将多个余数作为与所述待推送的消息相关联的多个数据标识。
7.根据权利要求1所述的方法,其特征在于,在基于所述多个数据标识,在数据缓存中确定与所述待推送的消息相对应的标志位之前,所述方法还包括:
在所述数据缓存中创建数组容器,为所述数组容器中的每个数组设置预定数量的数组下标,其中所述预定数量与数据标识的数量相同。
8.根据权利要求7所述的方法,其特征在于,所述基于所述多个数据标识,在数据缓存中确定与所述待推送的消息相对应的标志位,包括:
基于所述多个数据标识确定与所述待推送的消息相对应的数组的数组下标;
根据所述数组下标在所述数据缓存的数组容器中,检索与所述待推送的消息相对应的数组;
根据所述数组的内容值,确定与所述待推送的消息相对应的标志位。
9.根据权利要求1或8所述的方法,其特征在于,所述基于与所述待推送的消息相对应的标志位的当前值,对所述待推送的消息进行处理,包括:
基于与所述待推送的消息相对应的标志位的当前值,确定所述待推送的消息是否为重复发送的消息;
当所述待推送的消息不是重复发送的消息时,将所述待推送的消息放置到相关联的消息推送队列中,并向所述待推送的消息的业务方发送指示消息发送就绪的响应消息;
当所述待推送的消息是重复发送的消息时,不将所述待推送的消息放置到相关联的消息推送队列中,并向所述待推送的消息的业务方发送指示消息重复的响应消息。
10.一种对消息进行处理的装置,其特征在于,所述装置包括:
解析单元,用于在接收到待推送的消息时,对所述待推送的消息进行解析以获取所述待推送的消息的全局标识符;
计算单元,用于基于所述全局标识符,计算与所述待推送的消息相关联的多个数据标识,并基于所述多个数据标识,在数据缓存中确定与所述待推送的消息相对应的标志位;以及
处理单元,用于基于与所述待推送的消息相对应的标志位的当前值,对所述待推送的消息进行处理。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于执行权利要求1-9中任一项所述的方法。
12.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;其中,
所述存储器,用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现权利要求1-9中任一项所述的方法。
CN202210112266.XA 2022-01-29 2022-01-29 一种对消息进行处理的方法及装置 Pending CN114553815A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210112266.XA CN114553815A (zh) 2022-01-29 2022-01-29 一种对消息进行处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210112266.XA CN114553815A (zh) 2022-01-29 2022-01-29 一种对消息进行处理的方法及装置

Publications (1)

Publication Number Publication Date
CN114553815A true CN114553815A (zh) 2022-05-27

Family

ID=81673776

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210112266.XA Pending CN114553815A (zh) 2022-01-29 2022-01-29 一种对消息进行处理的方法及装置

Country Status (1)

Country Link
CN (1) CN114553815A (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0917159D0 (en) * 2009-09-30 2009-11-11 British Telecomm Method of configuring a device for communications service activation
CN104980327A (zh) * 2014-04-03 2015-10-14 腾讯科技(深圳)有限公司 一种消息推送方法及装置
CN107302597A (zh) * 2017-08-17 2017-10-27 北京小度信息科技有限公司 消息文案推送方法和装置
CN107465693A (zh) * 2017-09-18 2017-12-12 北京小度信息科技有限公司 请求消息处理方法和装置
CN108449256A (zh) * 2018-02-10 2018-08-24 深圳壹账通智能科技有限公司 消息推送的处理方法、装置、计算机设备及存储介质
CN108512876A (zh) * 2017-02-27 2018-09-07 腾讯科技(深圳)有限公司 数据的推送方法及装置
US20190327105A1 (en) * 2018-04-19 2019-10-24 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for pushing information
CN110753096A (zh) * 2019-10-12 2020-02-04 北京达佳互联信息技术有限公司 一种消息推送方法、系统及电子设备
CN113645578A (zh) * 2021-08-26 2021-11-12 上海德吾信息科技有限公司 一种防止信息重复发送方法、装置及存储介质
CN113794998A (zh) * 2021-08-20 2021-12-14 上海德吾信息科技有限公司 一种基于分布式锁的信息发送方法、装置及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0917159D0 (en) * 2009-09-30 2009-11-11 British Telecomm Method of configuring a device for communications service activation
CN104980327A (zh) * 2014-04-03 2015-10-14 腾讯科技(深圳)有限公司 一种消息推送方法及装置
CN108512876A (zh) * 2017-02-27 2018-09-07 腾讯科技(深圳)有限公司 数据的推送方法及装置
CN107302597A (zh) * 2017-08-17 2017-10-27 北京小度信息科技有限公司 消息文案推送方法和装置
CN107465693A (zh) * 2017-09-18 2017-12-12 北京小度信息科技有限公司 请求消息处理方法和装置
CN108449256A (zh) * 2018-02-10 2018-08-24 深圳壹账通智能科技有限公司 消息推送的处理方法、装置、计算机设备及存储介质
US20190327105A1 (en) * 2018-04-19 2019-10-24 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for pushing information
CN110753096A (zh) * 2019-10-12 2020-02-04 北京达佳互联信息技术有限公司 一种消息推送方法、系统及电子设备
CN113794998A (zh) * 2021-08-20 2021-12-14 上海德吾信息科技有限公司 一种基于分布式锁的信息发送方法、装置及存储介质
CN113645578A (zh) * 2021-08-26 2021-11-12 上海德吾信息科技有限公司 一种防止信息重复发送方法、装置及存储介质

Similar Documents

Publication Publication Date Title
US11640474B2 (en) Method and apparatus for operating database
US10356032B2 (en) System and method for detecting confidential information emails
US9906477B2 (en) Distributing retained messages information in a clustered publish/subscribe system
CN110728455B (zh) 业务处理方法、业务处理装置、存储介质与电子设备
US9418087B2 (en) Migrating information data into an application
US10002169B2 (en) Searching data based on entities related to the data
CN110928853A (zh) 一种标识日志的方法和装置
US20210182322A1 (en) Enhance a mail application to format a long email conversation for easy consumption
CN112861529A (zh) 错误码管理的方法和装置
US8655876B2 (en) Methods and systems for classifying data based on entities related to the data
CN113761565A (zh) 数据脱敏方法和装置
CN114461305B (zh) 一种数据源确定方法和装置
CN114553815A (zh) 一种对消息进行处理的方法及装置
CN113347052B (zh) 通过访问日志统计用户访问数据的方法和装置
US11463390B2 (en) Selecting attachments for electronic mail messages
CN113704222A (zh) 一种处理业务请求的方法和装置
CN112579673A (zh) 一种多源数据处理方法及装置
US20210028887A1 (en) Recast repetitive messages
CN111475291A (zh) 一种数据处理方法、系统、服务器及介质
CN113779017A (zh) 数据资产管理的方法和装置
CN112131287A (zh) 一种读取数据的方法和装置
CN112784195A (zh) 一种页面数据发布方法和系统
CN114553946A (zh) 一种对消息进行处理的方法及装置
CN111949472A (zh) 一种记录应用日志的方法及装置
CN113900895B (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220527

WD01 Invention patent application deemed withdrawn after publication