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

一种基于预先订阅的事件投递处理方法及装置

文献发布时间:2023-06-19 19:07:35


一种基于预先订阅的事件投递处理方法及装置

技术领域

本发明涉及互联网产业的一般数据处理技术领域,尤其涉及一种基于预先订阅的事件投递处理方法及装置。

背景技术

随着互联网技术的快速发展,智能化、数字化的营销方式既可以提高工作效率、降低用人成本,又能够给用户带来良好的交互体验,因此得到了广泛应用。在营销云系统中,用户可以通过终端设备进行各种操作,对应地,营销云系统中的业务服务器会根据用户操作生成各种事件,将事件投递至营销云系统中的事件中心服务器,经过事件中心服务器校验合格后,会将事件投递至对应的订阅服务中,从而将用户在终端设备进行的操作所对应的结果反馈给用户。因此,如何将事件投递至对应的订阅服务中,是目前需要解决的问题。

发明内容

本申请实施例所要解决的技术问题在于,提供一种基于预先订阅的事件投递处理方法及装置,实现了将事件投递至对应的订阅服务,提高营销云系统的智能性和稳定性。

第一方面,本发明实施例提供了一种基于预先订阅的事件投递处理方法,应用于营销云系统的事件中心服务器,所述营销云系统包括业务服务器、所述事件中心服务器和终端设备,所述事件中心服务器包括事件校验服务、事件中心服务、所述事件应用服务和SDK组件,所述方法包括:

所述SDK组件接收所述业务服务器发送的多个事件,对所述多个事件进行数据处理,得到事件列表,所述事件列表包括所述多个事件和所述多个事件中每个事件对应的订阅标识,所述订阅标识用于标注所述多个事件对应的事件应用服务;

所述事件中心服务接收所述SDK组件发送的所述事件列表,根据所述事件列表,对历史订阅事件集合进行更新,得到当前订阅事件集合,所述当前订阅事件集合包括多个事件子集,所述多个事件子集中每个事件子集对应一种事件应用服务,所述多个事件子集中的每个事件子集包括所述每个事件子集对应的事件应用服务所订阅的事件;

所述SDK组件接收所述事件校验服务发送的当前事件,对所述当前事件进行数据处理,得到所述当前事件对应的当前订阅标识,所述当前订阅标识用于标注所述当前事件对应的事件应用服务;

所述事件中心服务接收所述SDK组件发送的所述当前事件和所述当前事件对应的当前订阅标识,根据所述当前订阅标识,将所述当前事件与所述当前订阅事件集合进行匹配,确定所述当前事件是否属于所述当前订阅事件集合的所述多个事件子集中的目标事件子集,若所述当前事件属于所述多个事件子集中的所述目标事件子集,则确定所述目标事件子集对应的事件应用服务对所述当前事件进行处理;

所述目标事件子集对应的事件应用服务接收所述事件中心服务发送的所述当前事件,对所述当前事件进行投递处理,得到处理结果;

所述目标事件子集对应的事件应用服务向所述终端设备发送所述处理结果。

在营销云系统中,事件中心服务器接收业务服务器发送的多个事件,对多个事件进行数据处理,得到事件列表,根据事件列表对历史订阅事件集合进行更新,得到当前订阅事件集合,接收业务服务器发送的当前事件,对当前事件进行数据处理,得到当前事件对应的当前订阅标识,根据当前订阅标识,将当前事件与当前订阅事件集合进行匹配,若当前事件属于多个事件子集中的目标事件子集,则通过目标事件子集对应的事件应用服务对当前事件进行投递得到处理结果,然后向终端设备发送处理结果。基于预先订阅的事件投递处理机制用于将当前事件投递至对应的订阅服务,从而将用户在终端设备进行的操作所对应的结果反馈给用户,可以提高营销云系统的智能性和稳定性。

在一种可能的设计中,所述SDK组件接收所述业务服务器发送的所述多个事件,所述多个事件还包括所述多个事件中每个事件的声明式语法;所述SDK组件通过扫描所述多个事件中每个事件的声明式语法,得到所述多个事件中每个事件对应的订阅标识,向所述事件中心服务发送所述多个事件和所述多个事件中每个事件对应的订阅标识。SDK组件通过扫描声明式语法,得到多个事件中每个事件对应的订阅标识,有利于确定多个事件中每个事件对应的事件应用服务。

在另一种可能的设计中,所述事件中心服务接收所述SDK组件发送的所述事件列表,根据所述事件列表中的订阅标识,确定所述历史订阅事件集合是否包含所述事件列表中的事件;若所述历史订阅事件集合不包含所述事件列表中的第一事件,则所述事件中心服务将所述第一事件保存在与所述第一事件的订阅标识对应的事件子集中,得到所述当前订阅事件集合。事件中心服务根据事件列表中的订阅标识,确定事件列表中的多个事件与历史订阅事件集合中的事件子集的对应关系,用于判断历史订阅事件集合中是否存在需要更新的事件子集,并对历史订阅事件集合中需要更新的事件子集进行更新。

在另一种可能的设计中,若所述历史订阅事件集合包含所述事件列表中所有的事件,则所述事件中心服务将所述历史订阅事件集合确定为所述当前订阅事件集合。事件中心服务根据事件列表中的订阅标识,确定事件列表中的每个事件与历史订阅事件集合中的事件子集均存在对应关系,用于判断历史订阅事件集合中不存在需要更新的事件子集。

在另一种可能的设计中,所述事件校验服务接收所述业务服务器发送的所述当前事件,所述当前事件包括所述当前事件的事件结构体和所述当前事件的声明式语法;所述事件校验服务对所述当前事件的事件结构体进行合法性检验,若检验合格,向所述SDK组件发送所述当前事件;所述SDK组件接收所述事件校验服务发送的所述当前事件,扫描所述当前事件的声明式语法,得到所述当前事件对应的当前订阅标识,向所述事件中心服务发送所述当前事件和所述当前事件对应的当前订阅标识。事件校验服务先对当前事件的事件结构体进行合法性检验,若检验合格,则SDK组件对当前事件的声明式语法进行扫描,得到当前事件对应的当前订阅标识,有利于确定当前事件的合法性以及当前事件对应的事件应用服务。

在另一种可能的设计中,所述事件中心服务接收所述SDK组件发送的所述当前事件和所述当前事件对应的当前订阅标识;所述事件中心服务根据所述当前订阅标识,将所述当前事件与所述当前订阅事件集合进行匹配,得到所述当前订阅事件集合中的与所述当前事件具有订阅关系的事件子集,若所述与所述当前事件具有订阅关系的事件子集是所述多个事件子集中的所述目标事件子集,则所述当前事件属于所述目标事件子集,确定所述目标事件子集对应的事件应用服务对所述当前事件进行处理;所述事件中心服务向所述目标事件子集对应的事件应用服务发送所述当前事件。事件中心服务根据当前订阅标识,将当前事件与当前订阅事件集合进行匹配,确定当前事件是否属于当前订阅事件集合中的目标事件子集,以便确定是否向目标事件子集对应的事件应用服务推送当前事件。

在另一种可能的设计中,所述目标事件子集对应的事件应用服务接收所述事件中心服务发送的所述当前事件;所述目标事件子集对应的事件应用服务通过反射技术调用所述当前事件对应的目标业务代码,通过执行所述目标业务代码得到所述处理结果,所述处理结果用于响应用户在所述终端设备所执行的操作。目标事件子集对应的事件应用服务通过执行当前事件对应的目标业务代码得到处理结果,从而将用户在终端设备进行的操作所对应的结果反馈给用户。

第二方面,本发明实施例提供了一种基于预先订阅的事件投递处理装置,包括:

SDK组件,用于接收业务服务器发送的多个事件,对所述多个事件进行数据处理,得到事件列表,所述事件列表包括所述多个事件和所述多个事件中每个事件对应的订阅标识,所述订阅标识用于标注所述多个事件对应的事件应用服务;

事件中心服务,用于接收所述SDK组件发送的所述事件列表,根据所述事件列表,对历史订阅事件集合进行更新,得到当前订阅事件集合,所述当前订阅事件集合包括多个事件子集,所述多个事件子集中每个事件子集对应一种事件应用服务,所述多个事件子集中的每个事件子集包括所述每个事件子集对应的事件应用服务所订阅的事件;

所述SDK组件,还用于接收事件校验服务发送的当前事件,对所述当前事件进行数据处理,得到所述当前事件对应的当前订阅标识,所述当前订阅标识用于标注所述当前事件对应的事件应用服务;

所述事件中心服务,还用于接收所述SDK组件发送的所述当前事件和所述当前事件对应的当前订阅标识,根据所述当前订阅标识,将所述当前事件与所述当前订阅事件集合进行匹配,确定所述当前事件是否属于所述当前订阅事件集合的所述多个事件子集中的目标事件子集,若所述当前事件属于所述多个事件子集中的所述目标事件子集,则确定所述目标事件子集对应的事件应用服务对所述当前事件进行处理;

所述事件应用服务,用于通过所述目标事件子集对应的事件应用服务接收所述事件中心服务发送的所述当前事件,对所述当前事件进行投递处理,得到处理结果;

所述事件应用服务,还用于通过所述目标事件子集对应的事件应用服务向终端设备发送所述处理结果。

在一种可能的设计中,所述SDK组件,还用于接收所述业务服务器发送的所述多个事件,所述多个事件还包括所述多个事件中每个事件的声明式语法;通过扫描所述多个事件中每个事件的声明式语法,得到所述多个事件中每个事件对应的订阅标识,向所述事件中心服务发送所述多个事件和所述多个事件中每个事件对应的订阅标识。

在另一种可能的设计中,所述事件中心服务,还用于接收所述SDK组件发送的所述事件列表,根据所述事件列表中的订阅标识,确定所述历史订阅事件集合是否包含所述事件列表中的事件;若所述历史订阅事件集合不包含所述事件列表中的第一事件,则所述事件中心服务将所述第一事件保存在与所述第一事件的订阅标识对应的事件子集中,得到所述当前订阅事件集合;若所述历史订阅事件集合包含所述事件列表中所有的事件,则所述事件中心服务将所述历史订阅事件集合确定为所述当前订阅事件集合。

在另一种可能的设计中,所述事件校验服务,用于接收所述业务服务器发送的所述当前事件,所述当前事件包括所述当前事件的事件结构体和所述当前事件的声明式语法,对所述当前事件的事件结构体进行合法性检验,若检验合格,向所述SDK组件发送所述当前事件;

在另一种可能的设计中,所述SDK组件,还用于接收所述事件校验服务发送的所述当前事件,扫描所述当前事件的声明式语法,得到所述当前事件对应的当前订阅标识,向所述事件中心服务发送所述当前事件和所述当前事件对应的当前订阅标识。

在另一种可能的设计中,所述事件中心服务,还用于接收所述SDK组件发送的所述当前事件和所述当前事件对应的当前订阅标识;将所述当前订阅标识与所述当前订阅事件集合中的每个事件子集对应的事件应用服务进行匹配,得到所述当前订阅事件集合中的与所述当前事件具有订阅关系的事件子集,若所述与所述当前事件具有订阅关系的事件子集是所述多个事件子集中的所述目标事件子集,则所述当前事件属于所述目标事件子集,确定所述目标事件子集对应的事件应用服务对所述当前事件进行处理。

在另一种可能的设计中,所述事件中心服务,还用于若所述当前事件不属于所述多个事件子集中的所述目标事件子集,则删除所述当前事件。

在另一种可能的设计中,所述事件应用服务,用于通过所述目标事件子集对应的事件应用服务接收所述事件中心服务发送的所述当前事件;所述目标事件子集对应的事件应用服务通过反射技术调用所述当前事件对应的目标业务代码,通过执行所述目标业务代码得到所述处理结果,所述处理结果用于响应用户在所述终端设备所执行的操作。

该基于预先订阅的事件投递处理装置执行的操作及有益效果可以参见上述第一方面所述的方法以及有益效果,重复之处不再赘述。

第三方面,本申请实施例提供了一种基于预先订阅的事件投递处理系统,包括终端设备、业务服务器和事件中心服务器,其中,终端设备用于用户通过应用软件或小程序进行各种操作;业务服务器用于响应用户在终端设备的操作后,会产生事件;事件中心服务器用于接收业务服务器发送的多个事件,对多个事件进行数据处理,得到事件列表,根据事件列表对历史订阅事件集合进行更新,得到当前订阅事件集合,接收业务服务器发送的当前事件,对当前事件进行数据处理,得到当前事件对应的当前订阅标识,根据当前订阅标识,将当前事件与当前订阅事件集合进行匹配,若当前事件属于多个事件子集中的目标事件子集,则通过目标事件子集对应的事件应用服务对当前事件进行投递得到处理结果,向终端设备发送处理结果。在基于预先订阅的事件投递处理系统中,将当前事件投递至对应的订阅服务,从而将用户在终端设备进行的操作所对应的结果反馈给用户,可以提高营销云系统的智能性和稳定性。

第四方面,本申请实施例提供了一种基于预先订阅的事件投递处理系统,所述基于预先订阅的事件投递处理系统包括处理器、存储器和通信总线,其中,所述存储器用于存储计算机执行指令;所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述基于预先订阅的事件投递处理系统执行如第一方面中任意一项所述的方法;所述通信总线用于实现处理器和存储器之间连接通信。

第五方面,本申请实施例提供了一种服务器,所述服务器包括处理器、存储器和通信总线,其中,所述存储器用于存储计算机执行指令;所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述基于预先订阅的事件投递处理系统执行如第一方面中任意一项所述的方法;所述通信总线用于实现处理器和存储器之间连接通信。

第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,当所述计算机程序被执行时,使得如第一方面中任意一项所述的方法被实现。

第七方面,本申请实施例提供了一种包括计算机程序的计算机程序产品,当所述计算机程序被执行时,使得如第一方面中任意一项所述的方法被实现。

附图说明

为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。

图1是本申请实施例提供的一种基于预先订阅的事件投递处理系统的结构示意图;

图2是本申请实施例提供的一种基于预先订阅的事件投递处理方法的流程示意图;

图3是本申请实施例提供的一种使用基于预先订阅的事件投递处理系统的示例图;

图4是本申请实施例提供的一种基于预先订阅的事件投递处理装置的结构示意图;

图5是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

以下对本申请中涉及的部分用语进行说明,以便于本领域技术人员理解。

1、事件,用于解决微服务系统中因技术解耦,数据无法通过内存直接访问和传输,设计出来的一种用于数据传输的技术手段。

2、消息队列(message queue,MQ),一种跨进程通信的技术手段,提供了异步通信的通信协议,可以简单用来作为存储和传输事件的一种技术。

下面结合本申请实施例中的附图对本申请实施例进行描述。

如图1所示,图1是本申请实施例提供的一种基于预先订阅的事件投递处理系统的结构示意图。该基于预先订阅的事件投递处理系统包括终端设备101、业务服务器102和事件中心服务器103。其中,各个模块的详细描述如下。

终端设备101,用于用户通过应用软件或小程序进行各种操作。

业务服务器102,用于响应用户在终端设备101的操作后,会产生事件。

事件中心服务器103,用于接收业务服务器102发送的多个事件,对多个事件进行数据处理,得到事件列表;根据事件列表对历史订阅事件集合进行更新,得到当前订阅事件集合;接收业务服务器102发送的当前事件,对当前事件进行数据处理,得到当前事件对应的当前订阅标识;根据当前订阅标识,将当前事件与当前订阅事件集合进行匹配,若当前事件属于多个事件子集中的目标事件子集,则通过目标事件子集对应的事件应用服务对当前事件进行投递得到处理结果,向终端设备101发送处理结果。

具体的,终端设备101是具有处理能力和数据收发能力的装置。用户使用终端设备101进行各种操作,终端设备101可以是计算机、笔记本电脑、平板电脑、掌上电脑、台式机、手机、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、上网本、个人数字助理(Personal Digital Assistant,PDA)等,本申请实施例对终端设备的设备类型不加以限定。

事件中心服务器103包括存储器,存储器可以包括易失性存储器,例如非挥发性动态随机存取内存(nonvolatile random access memory,NVRAM)、相变化随机存取内存(phase change RAM,PRAM)、磁阻式随机存取内存(magetoresistive RAM,MRAM)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、闪存器件,例如反或闪存(NOR flash memory)或是反及闪存(NAND flash memory)、半导体器件,例如固态硬盘(solid state disk,SSD)等。

业务服务器102和事件中心服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)以及大数据和人工智能平台等基础云计算服务的云服务器。事件中心服务器103为业务服务器102提供事件的管理或分发服务,为预先订阅的事件提供投递处理机制。

终端设备101、业务服务器102以及事件中心服务器103可以通过有线网络建立通信连接,也可以通过无线网络建立通信连接。

可选的,事件中心服务器103可以承担主要计算工作,业务服务器102可以承担次要计算工作;或者,事件中心服务器103和业务服务器102分别单独承担投递工作;或者,事件中心服务器103和业务服务器102之间采用分布式计算架构进行协同计算。

需要说明的是,上述基于预先订阅的事件投递处理系统可以是一个与用户交互的系统,这个系统可以是软件系统也可以是硬件系统,也可以是软硬件结合的系统,本申请对此不作具体限定。还需说明的是,图1仅是示例性地展示了基于预先订阅的事件投递处理系统的一种结构化示意图,在实际应用中可以根据具体情况对图1的基于预先订阅的事件投递处理系统进行相应的变换。

如图2所示,图2是本申请实施例提供的一种基于预先订阅的事件投递处理方法的流程示意图,该方法包括但不限于如下步骤:

步骤S201:业务服务器向事件中心服务器发送多个事件。

具体的,运维人员在运维端通过声明式语法对多个事件中的每个事件进行标记,业务服务器向事件中心服务器发送多个事件。

需要说明的是,营销云系统的基本架构包括用户的终端设备、业务服务器、事件中心服务器和运维端。用户可以通过终端设备的应用软件或小程序进行各种操作;业务服务器可以设置多种业务服务,这些业务服务在响应用户在终端设备的一系列操作后,会产生事件;事件中心服务器用于管理和分发业务服务器中的业务服务产生的事件,包括事件校验服务、事件中心服务和事件应用服务;运维端用于维护营销云系统的正常运行,以及通过对事件中心服务器的访问,对事件进行管理和追溯。

在本申请实施例中,用户可以通过手机小程序参与抽奖活动,响应于用户操作,业务服务器的“活动参与服务”会产生“奖品发送事件”,事件中心服务器的事件应用服务中针对“奖品发送事件”的专属订阅服务为“短信通知服务”,运维人员在运维端通过声明式语法在“短信通知服务”的服务代码内标记“短信通知服务”订阅的多个事件,业务服务器的“活动参与服务”向事件中心服务器发送所述多个事件。

在一种实施例中,用户还可以通过手机的应用软件或小程序进行网上购物,响应于用户操作,业务服务器的“商品物流服务”会产生“发货通知事件”,事件中心服务器的事件应用服务中针对“发货通知事件”的专属订阅服务为“短信通知服务”,运维人员在运维端通过声明式语法在“短信通知服务”的服务代码内标记“短信通知服务”订阅的多个事件,业务服务器的“商品物流服务”向事件中心服务器发送所述多个事件。

在另一种实施例中,用户还可以通过手机的应用软件或小程序进行场地预约操作,响应于用户操作,业务服务器的“线上预约服务”会产生“预约通知事件”,事件中心服务器的事件应用服务中针对“预约通知事件”的专属订阅服务为“电话通知服务”,运维人员在运维端通过声明式语法在“线上预约服务”的服务代码内标记“电话通知服务”订阅的多个事件,业务服务器的“活动预约服务”向事件中心服务器发送所述多个事件。

步骤S202:事件中心服务器对多个事件进行数据处理,得到事件列表。

其中,事件列表包括多个事件和多个事件中每个事件对应的订阅标识,订阅标识用于标注多个事件对应的事件应用服务。

具体的,事件中心服务器还包括SDK组件,SDK组件接收业务服务器发送的多个事件,通过扫描多个事件中每个事件的声明式语法,得到事件列表,事件列表包括多个事件和多个事件中每个事件对应的订阅标识,订阅标识用于标注每个事件对应的事件应用服务。

在本申请实施例中,SDK组件接收业务服务器的“活动参与服务”发送的所述多个事件,通过扫描多个事件中每个事件的声明式语法,得到“短信通知服务”所订阅的事件列表。

在一种实施例中,若SDK组件接收业务服务器的“线上预约服务”发送的多个事件,通过扫描每个事件的声明式语法,得到“电话通知服务”所订阅的事件列表。

步骤S203:事件中心服务器根据事件列表,对历史订阅事件集合进行更新,得到当前订阅事件集合。

其中,当前订阅事件集合包括多个事件子集,多个事件子集中每个事件子集对应一种事件应用服务,多个事件子集中的每个事件子集包括每个事件子集对应的事件应用服务所订阅的事件。

具体的,SDK组件向事件中心服务发送事件列表,事件中心服务根据事件列表中的订阅标识,确定历史订阅事件集合是否包含事件列表中的事件,若历史订阅事件集合不包含事件列表中的第一事件,则事件中心服务将第一事件保存在与第一事件的订阅标识对应的事件子集中,得到当前订阅事件集合,若历史订阅事件集合包含事件列表中所有的事件,则事件中心服务将历史订阅事件集合确定为当前订阅事件集合。

在本申请实施例中,SDK组件向事件中心服务发送“短信通知服务”所订阅的事件列表,事件中心服务通过查询历史订阅事件集合中“短信通知服务”对应的事件子集,判断“短信通知服务”对应的事件子集是否需要更新,若“短信通知服务”对应的事件子集不包含事件列表中的第一事件,则事件中心服务将第一事件保存在“短信通知服务”对应的事件子集中,得到当前订阅事件集合,若“短信通知服务”对应的事件子集包含事件列表中所有的事件,则事件中心服务将历史订阅事件集合确定为当前订阅事件集合。

在一种实施例中,SDK组件向事件中心服务发送“电话通知服务”所订阅的事件列表,事件中心服务根据事件列表对历史订阅事件集合中的“电话通知服务”对应的事件子集进行更新,当“电话通知服务”对应的事件子集不包含事件列表中的一个或多个事件时,将上述一个或多个事件保存在“电话通知服务”对应的事件子集中,得到当前订阅事件集合。

步骤S204:业务服务器向事件中心服务器发送当前事件。

具体的,业务服务器通过消息队列向事件中心服务器的事件校验服务发送当前事件,当前事件包括当前事件的事件结构体和当前事件的声明式语法。

步骤S205:事件中心服务器对当前事件进行数据处理,得到当前事件对应的当前订阅标识。

其中,当前订阅标识用于标注当前事件对应的事件应用服务。

具体的,事件校验服务对当前事件的事件结构体进行合法性检验,若检验合格,事件校验服务向SDK组件发送当前事件,SDK组件接收事件校验服务发送的当前事件,通过扫描当前事件的声明式语法,得到当前事件对应的当前订阅标识,SDK组件向事件中心服务发送当前事件和当前事件对应的当前订阅标识。

步骤S206:事件中心服务器根据当前订阅标识,确定当前事件是否属于当前订阅事件集合的多个事件子集中的目标事件子集。

具体的,事件中心服务将所述当前订阅标识与所述当前订阅事件集合中的每个事件子集对应的事件应用服务进行匹配,得到当前订阅事件集合中的与当前事件具有订阅关系的事件子集,若与当前事件具有订阅关系的事件子集是多个事件子集中的目标事件子集,则当前事件属于目标事件子集,确定目标事件子集对应的事件应用服务对当前事件进行处理。

在本申请实施例中,当前订阅标识为“短信通知服务”,事件中心服务从当前订阅事件集合中查找与当前事件具有订阅关系的事件子集是“短信通知服务”对应的事件子集,由于“短信通知服务”对应的事件子集与目标事件子集是同一个事件子集,事件中心服务通过消息队列向“短信通知服务”发送当前事件。

可选的,若当前订阅标识是“电话通知服务”,则当前订阅事件集合中的与当前事件具有订阅关系的事件子集是“电话通知服务”对应的事件子集,由于目标事件子集是“短信通知服务”对应的事件子集,确定“电话通知服务”对应的事件子集不是目标事件子集,事件中心服务删除当前事件。

步骤S207:若当前事件属于多个事件子集中的目标事件子集,事件中心服务器对当前事件进行投递处理,得到处理结果。

具体的,若当前事件属于多个事件子集中的目标事件子集,则确定目标事件子集对应的事件应用服务对当前事件进行处理,目标事件子集对应的事件应用服务接收事件中心服务发送的当前事件,目标事件子集对应的事件应用服务通过反射技术调用当前事件对应的目标业务代码,通过执行目标业务代码得到处理结果,处理结果用于响应用户在终端设备所执行的操作。

在本申请实施例中,“短信通知服务”接收事件中心服务发送的当前事件之后,“短信通知服务”通过查找上述服务代码,确定当前事件为订阅事件,通过反射技术调用当前事件对应的目标业务代码(包括校验和发送),然后执行目标业务代码直至执行结果为处理成功,得到处理结果。

在一种实施例中,目标事件子集对应的事件应用服务为“电话通知服务”,那么“电话通知服务”接收事件中心服务发送的当前事件之后,“电话通知服务”通过查找上述运维端标记的服务代码,确定当前事件为订阅事件,通过反射技术调用当前事件对应的目标业务代码(包括拨号和致电),然后执行目标业务代码直至执行结果为处理成功,得到处理结果。

步骤S208:事件中心服务器向终端设备发送处理结果。

在本申请实施例中,“短信通知服务”向用户的终端设备发送处理结果,以实现短信下发到用户手机、用户领取奖品的业务效果,并且,“短信通知服务”向事件中心服务反馈执行成功通知消息,用于事件中心服务的数据统计分析。

在一种实施例中,用户通过手机的应用软件或小程序进行网上购物,目标事件子集对应的事件应用服务为“短信通知服务”,那么“短信通知服务”向用户的手机发送处理结果,以实现短信下发到用户手机、告知用户商品发货的业务效果。

在另一种实施例中,用户通过手机的应用软件或小程序进行场地预约操作,目标事件子集对应的事件应用服务为“电话通知服务”,那么“电话通知服务”向用户的手机发送处理结果,以实现通过电话告知用户场地预约的具体预约时间的业务效果。

在另一种实施例中,如图3所示,图3是本申请实施例提供的一种使用基于预先订阅的事件投递处理系统的示例图,其中,事件中心服务器包括事件校验服务、SDK组件、事件中心服务和事件应用服务,事件中心服务器对当前事件的投递处理的具体过程包括:SDK组件通过扫描多个事件中每个事件的声明式语法,得到事件列表,然后向事件中心服务发送事件列表;事件中心服务根据事件列表,对历史订阅事件集合进行更新,得到当前订阅事件集合;事件校验服务对当前事件的事件结构体进行合法性检验,若检验合格,则向SDK组件发送当前事件;SDK组件通过扫描当前事件的声明式语法,得到当前事件对应的当前订阅标识,SDK组件向事件中心服务发送当前事件和当前事件对应的当前订阅标识;事件中心服务根据当前订阅标识,确定当前事件是否属于当前订阅事件集合的多个事件子集中的目标事件子集,若当前事件属于多个事件子集中的目标事件子集,则通过目标事件子集对应的事件应用服务对当前事件进行投递处理,得到处理结果,若当前事件不属于多个事件子集中的目标事件子集,则事件中心服务删除当前事件。

在本申请实施例中,通过基于预先订阅的事件投递处理机制将当前事件投递至对应的订阅服务,从而将用户在终端设备进行的操作所对应的结果反馈给用户,可以提高营销云系统的智能性和稳定性。

上述详细阐述了本申请实施例的方法,以下是对本申请实施例提供的装置的说明。

如图4所示,图4是本申请实施例提供的一种基于预先订阅的事件投递处理装置的结构示意图,其中,基于预先订阅的事件投递处理装置包括SDK组件401、事件中心服务402、事件校验服务403和事件应用服务404。其中,各个单元的详细描述如下。

SDK组件401,用于接收业务服务器发送的多个事件,对多个事件进行数据处理,得到事件列表。

其中,多个事件还包括多个事件中每个事件的声明式语法,事件列表包括多个事件和多个事件中每个事件对应的订阅标识,订阅标识用于标注多个事件对应的事件应用服务。

可选的,SDK组件401,还用于扫描多个事件中每个事件的声明式语法,得到多个事件中每个事件对应的订阅标识。

事件中心服务402,还用于根据事件列表,对历史订阅事件集合进行更新,得到当前订阅事件集合,当前订阅事件集合包括多个事件子集,多个事件子集中每个事件子集对应一种事件应用服务,多个事件子集中的每个事件子集包括每个事件子集对应的事件应用服务所订阅的事件。

可选的,事件中心服务402,还用于根据事件列表中的订阅标识,确定历史订阅事件集合是否包含事件列表中的事件;若历史订阅事件集合不包含事件列表中的第一事件,则将第一事件保存在与第一事件的订阅标识对应的事件子集中,得到当前订阅事件集合;若历史订阅事件集合包含事件列表中所有的事件,则将历史订阅事件集合确定为当前订阅事件集合。

事件校验服务403,用于接收业务服务器发送的当前事件。

其中,当前事件包括当前事件的事件结构体和当前事件的声明式语法。

事件校验服务403,还用于对当前事件的事件结构体进行合法性检验,若检验合格,向SDK组件401发送当前事件。

SDK组件401,还用于接收事件校验服务403发送的当前事件,对当前事件进行数据处理,得到当前事件对应的当前订阅标识,当前订阅标识用于标注当前事件对应的事件应用服务,向事件中心服务402发送当前事件和当前事件对应的当前订阅标识。

事件中心服务402,还用于根据当前订阅标识,将当前事件与当前订阅事件集合进行匹配,确定当前事件是否属于当前订阅事件集合的多个事件子集中的目标事件子集,若当前事件属于多个事件子集中的目标事件子集,则确定目标事件子集对应的事件应用服务对当前事件进行处理。

可选的,事件中心服务402,还用于将当前订阅标识与当前订阅事件集合中的每个事件子集对应的事件应用服务进行匹配,得到当前订阅事件集合中的与当前事件具有订阅关系的事件子集,若与当前事件具有订阅关系的事件子集是多个事件子集中的目标事件子集,则当前事件属于目标事件子集,确定目标事件子集对应的事件应用服务对当前事件进行处理。

可选的,事件中心服务402,还用于若当前事件不属于多个事件子集中的目标事件子集,则删除当前事件。

事件应用服务404,用于通过目标事件子集对应的事件应用服务接收事件中心服务发送的当前事件,对当前事件进行投递处理,得到处理结果。

可选的,事件应用服务404,还用于通过目标事件子集对应的事件应用服务接收事件中心服务402发送的当前事件,通过反射技术调用当前事件对应的目标业务代码,通过执行目标业务代码得到处理结果,处理结果用于响应用户在终端设备所执行的操作。

事件应用服务404,还用于通过目标事件子集对应的事件应用服务向终端设备发送处理结果。

需要说明的是,上述SDK组件401、事件中心服务402、事件校验服务403和事件应用服务404用于执行上文方法实施例中事件中心服务器103所执行的动作或步骤。各个模块的实现还可以对应参照图2所示的方法实施例的相应描述,执行上述实施例中事件中心服务器103所执行的方法和功能。

前面内容详细介绍了本申请提供的基于预先订阅的事件投递处理系统,以及利用该系统如何实现基于预先订阅的事件投递处理过程,下面结合图5介绍基于预先订阅的事件投递处理系统的部署方式。

如图5所示,图5是本申请实施例提供的一种服务器的结构示意图,该服务器包括处理器501、存储器502和收发器503。其中,处理器501、存储器502和收发器503之间可以通过通信总线504连接通路互相通信,传递指令和/或数据信号,该存储器502用于存储计算机程序,该处理器501用于从该存储器502中调用并运行该计算机程序,以控制该收发器503收发信号。

上述处理器501可以和存储器502合成一个处理装置,处理器501用于执行存储器502中存储的程序代码来实现上述功能。具体实现时,该存储器502也可以集成在处理器501中,或者独立于处理器501。

上述收发器503也可以称为收发单元或收发模块。收发器503可以包括接收器(或称接收机、接收电路)和发射器(或称发射机、发射电路)。其中,接收器用于接收信号,发射器用于发送信号。

应理解,图5所示的服务器能够实现图2所示方法实施例中涉及基于预先订阅的事件投递处理系统的各个过程。服务器中的各个模块的操作和/或功能,分别为了实现上述方法实施例中的相应流程。具体可参见上述方法实施例中的描述,为避免重复,此处适当省略详述描述。

其中,处理器501可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的模块。处理器501也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。通信总线504可以是外设部件互连标准PCI总线或扩展工业标准结构EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信总线504用于实现这些组件之间的连接通信。其中,本申请实施例中存储器502可以是前文提及的各种类型的存储器。可选的,存储器502还可以是至少一个位于远离前述处理器501的存储装置。可选的,存储器502中还可以存储一组计算机程序代码或配置信息。可选的,处理器501还可以执行存储器502中所存储的程序。收发器503用于与其他组件进行指令或数据的通信。处理器可以与存储器和收发器相配合,执行上述申请实施例中基于预先订阅的事件投递处理系统的任意一种方法和功能。

根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行图2或图3所示实施例中任意一个实施例的方法。

根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行图2或图3所示实施例中任意一个实施例的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可读介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,SSD)等。

本申请实施例中出现的“多个”是指两个或两个以上。

本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对描述的对象个数的特别限定,不能构成对本申请实施例的任何限制。

以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种Spark平台中事件处理方法和装置
  • 一种事件处理方法、系统、装置及计算机可读存储介质
  • 一种事件处理方法及装置
  • 一种基于元数据的数据共享自订阅处理方法及系统
  • 一种基于区块链的理赔事件的处理方法、系统及电子设备
  • 一种基于区块链的事件发布、事件订阅的方法及装置
  • 一种车机订阅事件的处理方法、装置、设备及介质
技术分类

06120115801559