掌桥专利:专业的专利平台
掌桥专利
首页

基于事件驱动的消息处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 13:45:04


基于事件驱动的消息处理方法、装置、设备及存储介质

技术领域

本发明涉及人工智能领域,尤其涉及一种基于事件驱动的消息处理方法、装置、设备及存储介质。

背景技术

在传统的MGM(member get member,裂变式营销)业态中,用户将活动或者产品推荐分享给到好友后,业务系统需要根据好友后续的成交或是资产变化,进行跑批作业后置性的计算分享人的收益和奖励,再通过相应系统根据跑批计算的名单进行奖励发放。但是这样的后置结算往往导致MGM活动中的分享人无法及时了解M2(被分享人)的任务达成情况,即活动业务处理过程与活动状态消息难以及时被推送处理,从而导致消息处理不够及时、处理效率低,从而难以提高用户的裂变积极性,打击了用户的分享热情和信任感。

发明内容

本发明的主要目的在于解决现有技术中活动业务处理过程与活动状态消息处理的效率低的技术问题。

本发明第一方面提供了一种基于事件驱动的消息处理方法,所述基于事件驱动的消息处理方法包括:接收用户发送的活动参与请求,并根据所述活动参与请求生成与所述活动参与请求对应的目标活动的流水号;将所述流水号与所述活动参与请求携带的活动营销参数进行关联,并获取与所述活动营销参数对应的目标业务权限配置信息进行活动权限校验;根据通过活动权限校验的所述活动营销参数和所述流水号创建事件以及事件队列监听通道;采用所述时间队列监听通道对所述事件进行监听,并对所述事件进行业务处理,得到与所述目标活动对应的活动数据;封装所述活动数据,生成并推送活动状态消息。

可选的,在本发明的第一方面的第一种实现方式中,所述接收用户发送的活动参与请求,并根据所述活动参与请求生成与所述活动参与请求对应的活动的流水号包括:接收用户发送的活动参与请求,并提取所述用户的账户信息,得到与所述账户信息关联的业务编码;记录接收到所述活动参与请求时的系统时间,并根据所述系统时间生成时间戳;提取在所述时间戳下所述活动参与请求的序列号;根据所述业务编码、时间戳以及所述序列号生成与所述活动参与请求对应的活动的流水号。

可选的,在本发明的第一方面的第二种实现方式中,所述将所述流水号与所述活动参与请求携带的活动营销参数进行关联,并获取与所述活动营销参数对应的目标业务权限配置信息进行活动权限校验包括:将所述流水号与所述活动参与请求携带的活动营销参数进行关联,并获取与所述活动营销参数和所述业务编码对应的目标业务权限配置信息;提取与所述目标业务权限配置信息中的类名及方法名对应的目标校验方法;将所述活动营销参数作为所述目标校验方法的输入参数,调用所述目标校验方法对所述目标活动进行活动权限校验,若所述目标活动通过活动权限校验,则执行后续业务逻辑处理。

可选的,在本发明的第一方面的第三种实现方式中,所述根据通过活动权限校验的所述活动营销参数和所述流水号创建事件以及事件队列监听通道包括:对通过活动权限校验的所述活动营销参数和所述流水号进行封装,生成与所述活动对应的事件,并采用预设的消息组件发送所述事件;提取所述活动营销参数所包含的活动规则;对所述活动规则进行规则自定义注册,得到注册信息;根据所述注册信息创建事件队列监听通道,其中,所述事件队列监听通道携带有事件监听列表。

可选的,在本发明第一方面的第四种实现方式中,所述采用所述时间队列监听通道对所述事件进行监听,并对所述事件进行业务处理,得到与所述目标活动对应的活动数据包括:采用所述事件队列监听通道对所述事件进行监听,判断所述事件监听列表中是否包含所述事件;若是,则提取所述事件的事件属性,并根据所述事件属性对所述事件进行规则校验;对通过规则校验的所述事件进行解析,得到事件信息;根据所述事件信息对所述事件进行业务处理,执行所述事件对应的所述目标活动,得到与所述目标活动对应的活动数据。

可选的,在本发明第一方面的第五种实现方式中,所述提取所述事件的事件属性,并根据所述事件属性对所述事件进行规则校验包括:提取所事件的事件属性,并根据所述事件属性与所述活动营销参数所包含的活动规则进行匹配,查找与所述事件对应的目标活动规则;根据所述目标活动规则校验所述事件的事件类型和事件要素的完整性和有效性,判断所述事件要素和所述事件类型是否均不为空,若是,则校验通过。

可选的,在本发明第一方面的第六种实现方式中,所述封装所述活动数据,生成并发送活动状态消息包括:基于预设的解析规则,对所述活动数据进行解析,得到解析数据,并将所述解析数据转换成通用格式的数据;对所述通用格式的数据进行消息封装,得到活动状态消息;采用预设的消息组件推送所述活动状态消息。

本发明第二方面提出一种基于事件驱动的消息处理装置,所述基于事件驱动的消息处理装置包括:接收模块,用于接收用户发送的活动参与请求,并根据所述活动参与请求生成与所述活动参与请求对应的目标活动的流水号;校验模块,用于将所述流水号与所述活动参与请求携带的活动营销参数进行关联,并获取与所述活动营销参数对应的目标业务权限配置信息进行活动权限校验;创建模块,用于根据通过活动权限校验的所述活动营销参数和所述流水号创建事件以及事件队列监听通道;监听模块,用于采用所述时间队列监听通道对所述事件进行监听,并对所述事件进行业务处理,得到与所述目标活动对应的活动数据;推送模块,用于封装所述活动数据,生成并推送活动状态消息。

可选的,在本发明第二方面的第一种实现方式中,所述接收模块包括:接收单元,用于接收用户发送的活动参与请求,并提取所述用户的账户信息,得到与所述账户信息关联的业务编码;记录单元,用于记录接收到所述活动参与请求时的系统时间,并根据所述系统时间生成时间戳;第一提取单元,用于提取在所述时间戳下所述活动参与请求的序列号;生成单元,用于根据所述业务编码、时间戳以及所述序列号生成与所述活动参与请求对应的活动的流水号。

可选的,在本发明第二方面的第二种实现方式中,所述校验模块包括:关联单元,用于将所述流水号与所述活动参与请求携带的活动营销参数进行关联,并获取与所述活动营销参数和所述业务编码对应的目标业务权限配置信息;第二提取单元,用于提取与所述目标业务权限配置信息中的类名及方法名对应的目标校验方法;第一校验单元,用于将所述活动营销参数作为所述目标校验方法的输入参数,调用所述目标校验方法对所述目标活动进行活动权限校验,若所述目标活动通过活动权限校验,则执行后续业务逻辑处理。

可选的,在本发明第二方面的第三种实现方式中,所述创建模块包括:第一封装单元,用于对通过活动权限校验的所述活动营销参数和所述流水号进行封装,生成与所述活动对应的事件,并采用预设的消息组件发送所述事件;第三提取单元,用于提取所述活动营销参数所包含的活动规则;注册单元,用于对所述活动规则进行规则自定义注册,得到注册信息;创建单元,用于根据所述注册信息创建事件队列监听通道,其中,所述事件队列监听通道携带有事件监听列表。

可选的,在本发明第二方面的第四种实现方式中,所述监听模块包括:判断单元,用于采用所述事件队列监听通道对所述事件进行监听,判断所述事件监听列表中是否包含所述事件;第二校验单元,用于若所述事件监听列表中包含所述事件,则提取所述事件的事件属性,并根据所述事件属性对所述事件进行规则校验;解析单元,用于对通过规则校验的所述事件进行解析,得到事件信息;处理单元,用于根据所述事件信息对所述事件进行业务处理,执行所述事件对应的所述目标活动,得到与所述目标活动对应的活动数据。

可选的,在本发明第二方面的第五种实现方式中,所述第二校验单元具体用于:提取所事件的事件属性,并根据所述事件属性与所述活动营销参数所包含的活动规则进行匹配,查找与所述事件对应的目标活动规则;根据所述目标活动规则校验所述事件的事件类型和事件要素的完整性和有效性,判断所述事件要素和所述事件类型是否均不为空,若所述事件要素和所述事件类型均不为空,则校验通过。

可选的,在本发明第二方面的第六种实现方式中,所述推送模块包括:转换单元,用于基于预设的解析规则,对所述活动数据进行解析,得到解析数据,并将所述解析数据转换成通用格式的数据;第二封装单元,用于对所述通用格式的数据进行消息封装,得到活动状态消息;推送单元,用于采用预设的消息组件推送所述活动状态消息。

本发明第三方面提供了一种基于事件驱动的消息处理设备,所述基于事件驱动的消息处理设备包括:存储器和至少一个处理器,所述存储器中存储有计算机程序,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述计算机程序,以使得所述基于事件驱动的消息处理设备执行上述的基于事件驱动的消息处理方法的步骤。

本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机执行上述的基于事件驱动的消息处理方法的步骤。

在本发明提供的技术方案中,通过接收用户发送的活动参与请求并对应生成流水号,将流水号与活动参与请求携带的活动营销参数进行关联以及活动权限校验,通过校验后创建事件以及事件队列监听通道;采用事件队列监听通道监听事件并触发业务处理逻辑得到活动数据,对活动数据进行封装得到活动状态消息。本发明根据事件驱动模式实现了活动状态消息的处理,通过监听事件触发业务逻辑执行业务处理,降低了服务内部的复杂性,同时提高了消息的处理效率。

附图说明

图1为本发明实施例中基于事件驱动的消息处理方法的第一个实施例示意图;

图2为本发明实施例中基于事件驱动的消息处理方法的第二个实施例示意图;

图3为本发明实施例中基于事件驱动的消息处理方法的第三个实施例示意图;

图4为本发明实施例中基于事件驱动的消息处理方法的第四个实施例示意图;

图5为本发明实施例中基于事件驱动的消息处理装置的一个实施例示意图;

图6为本发明实施例中基于事件驱动的消息处理装置的另一个实施例示意图;

图7为本发明实施例中基于事件驱动的消息处理设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种基于事件驱动的消息处理方法、装置、设备及存储介质,通过接收用户发送的活动参与请求并对应生成流水号,将流水号与活动参与请求携带的活动营销参数进行关联以及活动权限校验,通过校验后创建事件以及事件队列监听通道;采用事件队列监听通道监听事件并触发业务处理逻辑得到活动数据,对活动数据进行封装得到活动状态消息。本发明实施例根据事件驱动模式实现了活动状态消息的处理,通过监听事件触发业务逻辑执行业务处理,降低了服务内部的复杂性,同时提高了消息的处理效率。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体内容进行描述,请参阅图1,本发明实施例中基于事件驱动的消息处理方法的第一个实施例包括:

101,接收用户发送的活动参与请求,并根据活动参与请求生成与活动参与请求对应的目标活动的流水号;

服务器接收用户发送的活动参与请求,并根据活动参与请求生成与活动参与请求对应的目标活动的流水号。用户(M1)在指定活动/产品页经过客群标签校验通过后,即通过身份验证之后,在了解相关活动和奖励规则的基础上,用户可以主动发起分享动作给到好友,邀请其他用户(M2)参与目标活动或购买产品,用户M1和用户M2一起发送参与目标活动的活动参与请求,当服务器接收并校验活动参与请求之后,用户和被邀请的其他用户可以直接参与该目标活动。

在本实施例中,顾客介绍顾客模式(MGM)负责整个分享环节的处理,用户M1通过分享流水号关联本次目标活动相关的活动营销参数,生成H5的短地址或是小程序路径的活动分享链接,以微信、朋友圈、海报、二维码以及其他app通道触达用户M2,完成分享动作闭环。M2接收到相应的活动分享连接后,如对该活动分享链接所展示的目标活动和奖励规则有比较高的热情和积极性,可以主动操作参与目标活动,与用户M1一起向服务器发送活动参与请求,服务器接收到该活动参与请求,则根据该活动参与请求生成对应的目标活动的流水号,流水号可将目标活动与该活动参与请求进行关联。

另外,本发明实施例可以基于人工智能技术对活动参与请求进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

102,将流水号与活动参与请求携带的活动营销参数进行关联,并获取与活动营销参数对应的目标业务权限配置信息进行活动权限校验;

服务器将流水号和活动参与请求携带的活动营销参数进行关联,并获取与活动营销参数对应的目标业务权限配置信息进行活动权限校验。用户发起的活动参与请求到达MGM后,根据该活动参与请求中携带的目标活动的活动营销参数对应的目标业务权限配置信息进行活动权限校验,即根据目标业务权限配置信息,判断用户M1和用户M2是否有参与该目标活动的权限,权限校验通过后对用户M1和用户M2建立目标活动的绑定关系,完成MGM闭环。

103,根据通过活动权限校验的活动营销参数和流水号创建事件以及事件队列监听通道;

104,采用时间队列监听通道对事件进行监听,并对事件进行业务处理,得到与目标活动对应的活动数据;

服务器根据通过活动权限校验的活动营销参数和流水号从业务层面创建事件以及事件队列监听通道。即在完成MGM流程闭环之后,进入事件驱动模式,服务器创建活动业务对应的事件并进入事件通知流程(Event Notification),针对业务事件固化的,如页面浏览、参与活动等实时数据,当业务层面操作完成时广播相关消息接入事件中心,MGM通过事件队列监听通道订阅事件中心相应的事件,对该事件进行监听,从而实时获取用户行为,触发后续流程;针对业务事件不固化的,如理财存款破冰、资产提升等离线数据;当离线数据跑完时接入事件中心,同时将离线消息一并加入事件中,MGM通过事件队列监听通道订阅事件中心相应的事件,对该事件进行监听,从而实时获取离线行为,触发后续流程。从而MGM可以直接从事件中获得需要的数据,而不需要访问其他访问或数据源。

事件通知模式可以高效的进行扩展,服务器上事件队列监听通道可以监听不同的事件。当监听到该事件时,对事件进行解析并根据该事件进行相应的业务处理,即将用户M1和M2添加至目标活动预设的参与用户列表中,并执行目标活动,得到与目标活动对应的活动数据,该活动数据包括参与用户列表、活动流程等。

105,封装活动数据,生成并推送活动状态消息。

服务器根据预设的消息组件(RabbitMq)将活动数据进行封装,生成活动状态消息,并采用消息组件将该活动状态消息推送给客户端。MGM在监听到该事件后统计用户参与活动的情况,判断用户的活动任务是否达标,以及一系列活动有效性与用户M1/M2身份校验,继而向分享活动的用户M1发放offer(权益奖励),同时通知业务系统的任务中心翻转用户M2活动任务的达标状态,由任务中心向M2发放offer。以上活动流程的活动数据闭环可输出实时目标活动的进展状态。用户M1可查看活动成就,包括邀请好友列表、好友任务达标情况、个人offer统计等。用户M2可查看任务列表,实时关注任务达标情况。

本实施例从技术角度方面,基于事件驱动翻转了各项服务间的依赖关系,更贴近真实的业务逻辑关系。事件成为了可以被消费的对象,而不仅仅是在函数间传递的临时参数,从而可以同时被多个服务消费。MGM场景中不需要直接和生成事件的服务进行交互,通过监听事件触发对应的业务逻辑,从而降低了服务内部的复杂度。从业务角度方面,通过实现基于事件驱动的MGM消息处理,有效提高了MGM活动的任务达标及权益奖励发放的准确性与实效性,极大的提高了用户参与和分享活动的积极性和参与热情,提升用户活动体验和好友行为感知力,进而提高MGM场景下的活动参与率。

在本发明实施例中,通过接收用户发送的活动参与请求,并根据活动参与请求中的活动营销参数进行活动权限校验,活动权限校验通过后创建事件以及事件队列监听通道,采用事件队列监听通道对事件进行监听从而进行业务处理,得到活动数据,将活动数据进行封装并推送活动状态消息。本发明实施例基于事件驱动模式实现了活动状态消息的处理,通过监听事件触发业务逻辑执行业务处理,降低了服务内部的复杂性,同时提高了消息的处理效率。

请参阅图2,本发明实施例中基于事件驱动的消息处理方法的第二个实施例包括:

201,接收用户发送的活动参与请求,并提取用户的账户信息,得到与账户信息关联的业务编码;

接收用户发送的活动参与请求,并提取发送活动参与请求中携带的该用户的账户信息,例如AppKey或Service Name,并根据该账户信息提取与账户信息关联的目标活动的业务编码。业务编码可由6位数字符号进行表征,不同的活动具有不同的业务编码,业务编码也可由5位或者是7位等数字符号表示,具体不作限制。

202,记录接收到活动参与请求时的系统时间,并根据系统时间生成时间戳;

服务器记录接收到该活动参与请求时的系统时间,并得到对应的时间戳。本实施例中,服务器所获得的本地时间戳的格式可为yyyyMMddHHmmssSSS格式,利用17位数字符号表示时间戳,可精确到毫秒级别。该种格式的时间戳相比现有技术中所采用的Unix时间戳而言,Unix时间戳是以1970-01-01,00:00:00开始计算到现在时间的毫秒数,对于二进制计数,目前大多数二进制时间戳以41位标识,则其最大支持时间为2039-09-07,23:47:35。之后需要再次扩展二进制占位数。而本实施例中,直接使用yyyyMMddHHmmssSSS时间格式,免去了将来为了支持更久时间而不得不进行的系统改造。另外,对比直接使用Unix十进制毫秒时间戳,采用yyyyMMddHHmmssSSS格式无疑对运维和运营人员更友好,可一目了然根据时间戳获知对应的时间信息。

203,提取在时间戳下活动参与请求的序列号;

204,根据业务编码、时间戳以及序列号生成与活动参与请求对应的目标活动的流水号;

流水号属于一种通用唯一识别码(Universally Unique Identifier,UUID),是指在一台机器上生成的数字,能够保证对在同一时空中的所有机器都是唯一的,流水号可用于对单一活动业务进行标识,例如一条活动参与记录、一条活动分享记录或者是其他的活动业务等。

服务器响应活动参与请求,并获得业务编码,其中,不同的活动可对应不同的业务编码,在获得业务编码的情况下,即可确定对应的活动及活动类型。服务器同时可根据接收到活动参与请求时的系统时间,得到对应的时间戳。该系统时间为服务器的本地时间,将服务器作为单一节点,各个服务节点的时间戳均由服务器统一生成,如此,各个服务节点所生成的流水号的时间信息有唯一来源,保证了不同服务节点中时间的同步性。

由于同一时间戳下可能接收到的活动参与请求有多条,即同一时间戳下请求同一服务节点生成多个流水号,因此,在服务节点接收到服务器发送的时间戳和业务编码后,还可生成该时间戳下该活动参与请求的序列号。最后得到的流水号由业务编码、时间戳、预先生成的为该服务节点所分配的节点编码以及序列号所构成,其中,服务器内任意两个服务节点的节点编码不同。如此,保障了生成的流水号的唯一性,且流水号中包含目标活动的业务信息,可用于后续业务信息的反解。

205,将流水号与活动参与请求携带的活动营销参数进行关联,并获取与活动营销参数和业务编码对应的目标业务权限配置信息;

将流水号与活动参与请求携带的活动营销参数进行关联,并获取与活动营销参数和业务编码对应的目标业务权限配置信息。在本实施例中,业务编码对应的账户信息是用户登录业务系统时的用户的所属身份。业务编码和活动营销参数对应用户请求的活动业务。服务器根据账户信息、业务编码和活动营销参数创建不同的业务权限配置信息。服务器预先为各活动业务配置一个默认校验方法,将其方法名、活动类型、资源路径、参数获取方式、类名存储作为默认业务权限配置信息。

206,提取与目标业务权限配置信息中的类名及方法名对应的目标校验方法;

207,将活动营销参数作为目标校验方法的输入参数,调用目标校验方法对目标活动进行活动权限校验,若目标活动通过活动权限校验,则执行后续业务逻辑处理;

服务器提取与目标业务权限配置信息中的类名及方法名对应的目标校验方法;调用该目标校验方法来确定目标活动的活动权限校验是否通过。活动权限校验包括平台权限校验和活动参与权限校验。平台权限校验是划分访问业务系统的账号信息,将用户根据登陆账号,划分为活动分享者、活动受邀者等身份,然后根据不同的身份带有的权限码不同,可以判断该账号是否有访问平台的统一资源定位系统(uniform resource locator,URL)的权限,即判断该用户是否有访问平台资源的权限;活动参与权限校验判断该账号对应的用户是否有参与该活动的权限。将活动营销参数作为目标校验方法的输入参数,根据活动营销参数关联的账户信息,调用目标校验方法对目标活动进行活动权限校验,判断该账户信息对应的用户是否有参与该目标活动的权限,以及在参与该目标活动时有访问平台资源的权限。若该目标活动通过活动权限校验,即用户有参与目标活动且访问平台资源的权限,则服务器执行后续对该目标活动的业务逻辑处理,即服务器响应活动参与请求,执行该活动。

208,根据通过活动权限校验的活动营销参数和流水号创建事件以及事件队列监听通道;

209,采用时间队列监听通道对事件进行监听,并对事件进行业务处理,得到与目标活动对应的活动数据;

210,封装活动数据,生成并推送活动状态消息。

在本发明实施例中,步骤208-210与上述的基于事件驱动的消息处理方法的第一个实施例中的步骤步骤103-105一致,在此不做赘述。

在本发明实施例中,通过获取目标校验方法对目标活动进行活动权限校验,当通过活动权限校验时执行后续业务逻辑处理,提高了内部对目标活动进行业务逻辑处理的可靠性和安全性。

请参阅图3,本发明实施例中基于事件驱动的消息处理方法的第三个实施例包括:

301,接收用户发送的活动参与请求,并根据活动参与请求生成与活动参与请求对应的目标活动的流水号;

302,将流水号与活动参与请求携带的活动营销参数进行关联,并获取与活动营销参数对应的目标业务权限配置信息进行活动权限校验;

303,对通过活动权限校验的活动营销参数和流水号进行封装,生成与目标活动对应的事件,并采用预设的消息组件发送事件;

304,提取活动营销参数所包含的活动规则;

305,对活动规则进行规则自定义注册,得到注册信息;

306,根据注册信息创建事件队列监听通道;

服务器对通过活动权限校验的活动营销参数和流水号进行封装,生成与目标活动对应的事件,即采用流水号对事件进行标记,根据活动营销参数定义事件属性。将生成的事件添加到预设的消息组件的消息队列中,将该事件以消息队列的形式进行发送;提取活动营销参数所携带的活动规则,服务器将活动规则输入至预设的注册平台中进行规则自定义注册,得到注册信息,根据该注册信息创建事件队列监听通道,该事件队列监听通道携带有事件监听列表,即将该事件的注册信息存储到事件队列监听通道的事件监听列表中。其中,事件监听列表中陈列了事件队列监听通道需要监听的各事件,因此,事件队列监听通道根据该事件监听列表中所包含的监听事件对消息组件推送的各事件进行监听。

307,采用事件队列监听通道对事件进行监听,判断事件队列监听通道的事件监听列表中是否包含事件;

308,若事件监听列表中包含事件,则提取事件的事件属性,并根据事件属性对事件进行规则校验;

服务器采用事件队列监听通道对事件进行监听,判断事件监听列表中是否包含该事件,即判断该事件是否为被需要监听的事件,若该事件为被需要监听的事件,则提取该事件所携带的事件属性,并根据事件属性匹配事件所包含的活动营销参数中的活动规则进行匹配,查找与该事件对应的目标活动规则,并根据该目标活动规则校验事件的事件类型和事件要素的完整性和有效性,即对事件进行规则校验,当该事件的事件类型和事件要素都不为空值时,该事件通过校验。

具体的,服务器提取事件所携带的事件属性,事件属性可包括事件发生时间、事件注册账号、事件发生IP地址、注册来源等信息。通过事件发生时间与活动营销参数所包含的一种或多种活动规则中的每一种活动规则规定的活动时间段进行匹配,如果事件发生的时间在任一活动时间内,则表示该活动规则为目标活动规则。例如,若事件发生的时间在多个活动规则所规定的时间段内,则可以匹配到多个活动规则。

服务器识别和提取该事件的事件类型和事件要素,并根据目标活动规则校验事件的事件类型和事件要素的完整性和有效性;即判断该事件要素与事件类型是否都不为空值,当事件要素与事件类型都不为空值时,表示该事件的事件类型和事件要素具备完整性和有效性,则确定该事件通过目标活动规则的校验。

309,对通过规则校验的事件进行解析,得到事件信息;

310,根据事件信息对事件进行业务处理,执行事件对应的目标活动,得到与目标活动对应的活动数据;

服务器采用预设的解析规则和解析工具对通过规则校验的事件进行解析,将该事件解析为可直接查看的数据,获取事件的事件信息,其中,事件信息包括事件名称、事件内容、事件对应的活动名称、活动类型等。并根据事件信息对事件进行业务处理,即执行该事件对应的目标活动,并记录执行该目标活动时所产生的活动数据,从而得到与该目标活动对应的活动数据。

311,封装活动数据,生成并推送活动状态消息。

服务器根据预设的消息组件(RabbitMq)将活动数据进行封装,生成活动状态消息,并采用消息组件将该活动状态消息推送给客户端。MGM在监听待该事件后统计用户参与活动的情况,判断用户的活动任务是否达标,以及一系列活动有效性与用户M1/M2身份校验,继而向分享活动的用户M1发放offer(权益奖励),同时通知业务系统的任务中心翻转用户M2活动任务的达标状态,由任务中心向M2发放offer。以上活动流程的活动数据闭环可输出实时目标活动的进展状态。用户M1可查看活动成就,包括邀请好友列表、好友任务达标情况、个人offer统计等。用户M2可查看任务列表,实时关注任务达标情况。

在本发明实施例中,步骤301-302与上述的基于事件驱动的消息处理方法的第一个实施例中的步骤101-102一致,在此不做赘述。

在本发明实施例中,通过自定义脚本为活动营销参数配置活动规则,每个活动隶属于一个事件。本实施例的事件队列监听通道采用先注册后使用的模式,在创建与目标活动对应的事件后需要选择注册启动,活动规则才可生效,避免了在目标活动进行业务处理状态下活动规则生效导致的不必要错误。

请参阅图4,本发明实施例中基于事件驱动的消息处理方法的第四个实施例包括:

401,接收用户发送的活动参与请求,并根据活动参与请求生成与活动参与请求对应的目标活动的流水号;

402,将流水号与活动参与请求携带的活动营销参数进行关联,并获取与活动营销参数对应的目标业务权限配置信息进行活动权限校验;

403,根据通过活动权限校验的活动营销参数和流水号创建事件以及事件队列监听通道;

404,采用时间队列监听通道对事件进行监听,并对事件进行业务处理,得到与目标活动对应的活动数据;

405,基于预设的解析规则,对活动数据进行解析,得到解析数据,并将解析数据转换成通用格式的数据;

406,对通用格式的数据进行消息封装,得到活动状态消息;

407,采用预设的消息组件推送活动状态消息。

服务器调用预设的解析工具以及数据解析规则,对活动数据进行解析,将活动数据解析为可直接使用文本打开和查看具体内容的解析数据,并将解析数据根据预设的通用格式转换协议进行通用格式的转换,得到符合通用格式的数据。其中,对数据进行解析和数据的通用格式的转换技术属于现有技术,本实施例在此不做限定;解析数据的格式和通用格式可根据实际情况进行设置。

服务器上预先设置有消息组件,根据该消息组件对通用格式的数据进行消息封装,得到活动状态消息,并向客户端推送该活动状态消息。在本实施例中,消息组件采用RocketMQ消息组件,RocketMQ作为一款分布式的消息中间件,支持分布式事务消息,通过RocketMQ将得到的通用格式的数据进行消息封装,生成活动状态消息,供以进行数据通信。

在本发明实施例中,步骤401-404与上述的基于事件驱动的消息处理方法的第一个实施例中的步骤101-104一致,在此不做赘述。

在本发明实施例中,对活动数据进行解析和消息封装,生成活动状态消息,并采用消息组件推送活动状态消息,实现了基于事件驱动的活动状态消息的生成和推送,方便后续对活动数据进行查阅和处理,同时提高了消息处理的效率。

上面对本发明实施例中的基于事件驱动的消息处理方法进行了描述,下面对本发明实施例中的基于事件驱动的消息处理装置进行描述,请参照图5,本发明实施例中的基于事件驱动的消息处理装置的一个实施例包括:

接收模块501,用于接收用户发送的活动参与请求,并根据所述活动参与请求生成与所述活动参与请求对应的目标活动的流水号;

校验模块502,用于将所述流水号与所述活动参与请求携带的活动营销参数进行关联,并获取与所述活动营销参数对应的目标业务权限配置信息进行活动权限校验;

创建模块503,用于根据通过活动权限校验的所述活动营销参数和所述流水号创建事件以及事件队列监听通道;

监听模块504,用于采用所述时间队列监听通道对所述事件进行监听,并对所述事件进行业务处理,得到与所述目标活动对应的活动数据;

推送模块505,用于封装所述活动数据,生成并推送活动状态消息。

在本发明实施例中,通过基于事件驱动的消息处理装置接收用户发送的活动参与请求,并根据活动参与请求中的活动营销参数进行活动权限校验,活动权限校验通过后创建事件以及事件队列监听通道,采用事件队列监听通道对事件进行监听从而进行业务处理,得到活动数据,将活动数据进行封装并推送活动状态消息。本发明实施例基于事件驱动模式实现了活动状态消息的处理,通过监听事件触发业务逻辑执行业务处理,降低了服务内部的复杂性,同时提高了消息的处理效率。

请参阅图6,本发明实施例中的基于事件驱动的消息处理装置的另一个实施例包括:

接收模块501,用于接收用户发送的活动参与请求,并根据所述活动参与请求生成与所述活动参与请求对应的目标活动的流水号;

校验模块502,用于将所述流水号与所述活动参与请求携带的活动营销参数进行关联,并获取与所述活动营销参数对应的目标业务权限配置信息进行活动权限校验;

创建模块503,用于根据通过活动权限校验的所述活动营销参数和所述流水号创建事件以及事件队列监听通道;

监听模块504,用于采用所述时间队列监听通道对所述事件进行监听,并对所述事件进行业务处理,得到与所述目标活动对应的活动数据;

推送模块505,用于封装所述活动数据,生成并推送活动状态消息。

其中,所述接收模块501包括:

接收单元5011,用于接收用户发送的活动参与请求,并提取所述用户的账户信息,得到与所述账户信息关联的业务编码;

记录单元5012,用于记录接收到所述活动参与请求时的系统时间,并根据所述系统时间生成时间戳;

第一提取单元5013,用于提取在所述时间戳下所述活动参与请求的序列号;

生成单元5014,用于根据所述业务编码、时间戳以及所述序列号生成与所述活动参与请求对应的活动的流水号。

其中,所述校验模块502包括:

关联单元5021,用于将所述流水号与所述活动参与请求携带的活动营销参数进行关联,并获取与所述活动营销参数和所述业务编码对应的目标业务权限配置信息;

第二提取单元5022,用于提取与所述目标业务权限配置信息中的类名及方法名对应的目标校验方法;

第一校验单元5023,用于将所述活动营销参数作为所述目标校验方法的输入参数,调用所述目标校验方法对所述目标活动进行活动权限校验,若所述目标活动通过活动权限校验,则执行后续业务逻辑处理。

其中,所述创建模块503包括:

第一封装单元5031,用于对通过活动权限校验的所述活动营销参数和所述流水号进行封装,生成与所述活动对应的事件,并采用预设的消息组件发送所述事件;

第三提取单元5032,用于提取所述活动营销参数所包含的活动规则;

注册单元5033,用于对所述活动规则进行规则自定义注册,得到注册信息;

创建单元5034,用于根据所述注册信息创建事件队列监听通道,其中,所述事件队列监听通道携带有事件监听列表。

其中,所述监听模块504包括:

判断单元5041,用于采用所述事件队列监听通道对所述事件进行监听,判断所述事件监听列表中是否包含所述事件;

第二校验单元5042,用于若所述事件监听列表中包含所述事件,则提取所述事件的事件属性,并根据所述事件属性对所述事件进行规则校验;

解析单元5043,用于对通过规则校验的所述事件进行解析,得到事件信息;

处理单元5044,用于根据所述事件信息对所述事件进行业务处理,执行所述事件对应的所述目标活动,得到与所述目标活动对应的活动数据。

其中,所述第二校验单元5042具体用于:

提取所事件的事件属性,并根据所述事件属性与所述活动营销参数所包含的活动规则进行匹配,查找与所述事件对应的目标活动规则;

根据所述目标活动规则校验所述事件的事件类型和事件要素的完整性和有效性,判断所述事件要素和所述事件类型是否均不为空,若所述事件要素和所述事件类型均不为空,则校验通过。

其中,所述推送模块505包括:

转换单元501,用于基于预设的解析规则,对所述活动数据进行解析,得到解析数据,并将所述解析数据转换成通用格式的数据;

第二封装单元502,用于对所述通用格式的数据进行消息封装,得到活动状态消息;

推送单元503,用于采用预设的消息组件推送所述活动状态消息。

在本发明实施例中,通过基于事件驱动的消息处理装置对活动数据进行解析和消息封装,生成活动状态消息,并采用消息组件推送活动状态消息,实现了基于事件驱动的活动状态消息的生成和推送,方便后续对活动数据进行查阅和处理,同时提高了消息处理的效率。

请参阅图7,下面从硬件处理的角度对本发明实施例中的基于事件驱动的消息处理设备的一个实施例进行详细描述。

图7是本发明实施例提供的一种基于事件驱动的消息处理设备的结构示意图,该基于事件驱动的消息处理设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于事件驱动的消息处理设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在基于事件驱动的消息处理设备700上执行存储介质730中的一系列指令操作。

基于事件驱动的消息处理设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和或或,一个或一个以上操作系统731,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图7示出的基于事件驱动的消息处理设备结构并不构成对基于事件驱动的消息处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明所指服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于事件驱动的消息处理方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120113793045