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

一种数据推送的方法、系统、设备及可读存储介质

文献发布时间:2023-06-19 10:02:03


一种数据推送的方法、系统、设备及可读存储介质

技术领域

本申请涉及数据推送领域,特别涉及一种数据推送的方法、系统、设备及可读存储介质。

背景技术

随着互联网及分布式系统技术的发展,越来越多的信息在不同系统之间传递、过滤及发布,例如,政府采购的公告发布时,同一份公告信息需要发布到中央、省、市、区多级政府的财税系统,而且不同的目的系统信息的规则、映射、过滤都不尽相同,目前的方案是针对每一种目的系统定制开发一套数据推送应用,以解决信息推送差异化。

然而,这种方案的缺点在于:当存在大量不同业务数据推送到不同目的系统时,其将会是一个巨大且复杂的系统工程,涉及的编码与工作量随着业务系统及目的系统的增加成指数增长,导致开发维护效率低下,成本成倍增加。

因此,如何提高数据推送的效率是本领域技术人员目前需要解决的技术问题。

发明内容

本申请的目的是提供一种数据推送的方法、系统、设备及可读存储介质,用于提高数据推送的效率。

为解决上述技术问题,本申请提供一种数据推送的方法,该方法包括:

接收数据推送任务,并根据所述数据推送任务确定目的系统、每个所述目的系统对应的待推送数据以及每个所述目的系统对应的处理流程;

分别利用每个所述处理流程对每个所述目的系统对应的所述待推送数据进行处理,得到每个所述目的系统对应的终端数据;

将每个所述终端数据推送至对应的目的系统中。

可选的,根据所述数据推送任务确定每个所述目的系统对应的处理流程,包括:

根据所述数据推送任务确定配置文件;

根据所述配置文件确定每个所述目的系统对应的处理流程。

可选的,还包括:

根据输入的配置文件修改命令对所述配置文件进行修改;

根据修改后的配置文件对每个所述目的系统对应的处理流程进行修改。

可选的,所述处理流程包括过滤处理及映射处理;

所述分别利用每个所述处理流程对每个所述目的系统对应的所述待推送数据进行处理,得到每个所述目的系统对应的终端数据,包括:

分别对每个所述目的系统对应的所述待推送数据进行所述过滤处理,得到每个所述目的系统对应的过滤数据;

分别对每个所述目的系统对应的所述过滤数据进行所述映射处理,得到每个所述目的系统对应的所述终端数据。

可选的,根据所述数据推送任务确定每个所述目的系统对应的待推送数据,包括:

接收源系统发送的原始数据,并根据所述数据推送任务从所述原始数据中确定每个所述目的系统对应的待推送数据。

可选的,根据所述数据推送任务确定每个所述目的系统对应的待推送数据,包括:

根据所述数据推送任务确定每个所述目的系统对应的待推送数据,并通过开放平台拉取接口从源系统中拉取所述待推送数据。

可选的,在分别利用每个所述处理流程对每个所述目的系统对应的所述待推送数据进行处理,得到每个所述目的系统对应的终端数据之前,还包括:

对每个所述待推送数据进行健康检查,并将处于不健康状态的待推送数据移至死亡队列。

可选的,将每个所述终端数据推送至对应的目的系统中,包括:

确定每个所述目的系统支持的通信协议,并通过路由匹配每个所述终端数据对应的渠道;

分别通过所述渠道利用对应通信协议所允许的接口与每个所述目的系统进行连接,并将每个所述终端数据推送至对应的目的系统中。

可选的,在将每个所述终端数据推送至对应的目的系统中之后,还包括:

接收每个所述目的系统发送的推送反馈结果;

根据推送反馈结果进行结果统计,并对所述推送反馈结果为推送失败的终端数据进行重新推送;

记录重新推送次数,并在所述重新推送次数超过阈值时将所述终端数据移至死亡队列。

可选的,在确定每个所述目的系统支持的通信协议之前,还包括:

过滤预设时间内重复发送的所述终端数据。

本申请还提供一种数据推送的系统,该系统包括:

接收模块,用于接收数据推送任务,并根据所述数据推送任务确定目的系统、每个所述目的系统对应的待推送数据以及每个所述目的系统对应的处理流程;

处理模块,用于分别利用每个所述处理流程对每个所述目的系统对应的所述待推送数据进行处理,得到每个所述目的系统对应的终端数据;

推送模块,用于将每个所述终端数据推送至对应的目的系统中。

本申请还提供一种数据推送设备,该数据推送设备包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述数据推送的方法的步骤。

本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述数据推送的方法的步骤。

本申请所提供数据推送的方法,包括:接收数据推送任务,并根据数据推送任务确定目的系统、每个目的系统对应的待推送数据以及每个目的系统对应的处理流程;分别利用每个处理流程对每个目的系统对应的待推送数据进行处理,得到每个目的系统对应的终端数据;将每个终端数据推送至对应的目的系统中。

本申请所提供的技术方案,通过分别利用每个处理流程对每个目的系统对应的待推送数据进行处理,得到每个目的系统对应的终端数据,最后将每个终端数据推送至对应的目的系统中,实现了相同或不同数据的分情况处理及推送,在面对大量不同业务数据推送到不同目的系统的情况时,本申请不需要针对每一种目的系统定制开发数据推送应用,避免了涉及的编码与工作量随着业务系统及目的系统的增加成指数增长,极大的提高了数据推送的效率,并降低了开发维护成本。本申请同时还提供了一种数据推送的系统、设备及可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种数据推送的方法的流程图;

图2为图1所提供的一种数据推送的方法中S103的一种实际表现方式的流程图;

图3为本申请实施例所提供的一种数据推送过程的示意图;

图4为本申请实施例所提供的一种数据推送过程的任务分布图;

图5为本申请实施例所提供的一种数据推送的系统的结构图;

图6为本申请实施例所提供的一种数据推送设备的结构图。

具体实施方式

本申请的核心是提供一种数据推送的方法、系统、设备及可读存储介质,用于提高数据推送的效率。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种数据推送的方法的流程图。

其具体包括如下步骤:

S101:接收数据推送任务,并根据数据推送任务确定目的系统、每个目的系统对应的待推送数据以及每个目的系统对应的处理流程;

基于现有技术中通过针对每一种目的系统定制开发一套数据推送应用的方式,以解决信息推送差异化的问题,然而,当存在大量不同业务数据推送到不同目的系统时,其将会是一个巨大且复杂的系统工程,涉及的编码与工作量随着业务系统及目的系统的增加成指数增长,导致开发维护效率低下,成本成倍增加;故本申请提供了一种数据推送的方法,用于解决上述问题;

在本步骤中,根据数据推送任务确定目的系统、每个目的系统对应的待推送数据以及每个目的系统对应的处理流程的目的在于,为实现对相同或不同数据的分情况处理及推送,进而在面对大量不同业务数据推送到不同目的系统的情况时,不需要针对每一种目的系统定制开发数据推送应用,进而提高了数据推送的效率;

可选的,每个目的系统对应的待推送数据可以相同也可以不同,本申请对此不作具体限定。

可选的,可以通过在系统中编写对应的代码来生成该数据推送任务,进而实现根据数据推送任务确定目的系统、每个目的系统对应的待推送数据以及每个目的系统对应的处理流程;

优选的,由于业务系统及目的系统会随着业务量的增加而增加,为了方便修改处理流程,令新加入的业务系统及目的系统也能使用该方法,还可以通过设置配置文件的方式实现每个目的系统对应的处理流程的确定,即这里提到的根据数据推送任务每个目的系统对应的处理流程,其具体可以通过执行如下步骤实现:

根据数据推送任务确定配置文件;

根据配置文件确定每个目的系统对应的处理流程。

进一步的,还可以通过执行如下步骤实现对已有处理流程的修改:

根据输入的配置文件修改命令对配置文件进行修改;

根据修改后的配置文件对每个目的系统对应的处理流程进行修改。

可选的,这里提到的配置文件可以使用户或系统能够动态配置不同的任务及任务参数,实现对任务的封装、测试、同步、调度、执行流程化处理,并通过定制任务参数实现系统定制化数采集工作,在一个具体实施例中,还可以通过elasic-job分布式集群部署,实现采集任务高并发调度执行,极大地提高数据采集效率;

在一个具体实施例中,可以通过配置文件实现动态配置路由、过滤、映射规则,进而实现数据推送的同源多端,多源多端:即同一份数据可以推送给我不同目的系统,每个目的网络要求的终端数据格式、内容都不尽相同;多份源数据推送给多个不同的目的网络;

在一个具体实施例中,配置控制台可以处在云配置中心,一份配置可以同时同步到多个环境实现一次制作多次复用的效果,进而提高推送系统的效能。

进一步的,控制台配置模块具体按以下步骤进行工作:

配置数据采集的任务参数,包括任务名称、业务类型、网关地址、API请求路径,接口方法、任务执行周期、请求参数等;

对新配置的任务进行测试,调节请求参数,最终确定任务的规格参数;

配置数据规则包括路由规则、过滤规则、映射规则、包括规则名称、业务编码、业务标识、过滤规则、业务规则参数等;

对新配置的规则进行测试,确定规则的有效性与正确性,最终确定完整的规则参数;

将新配置的任务同步到具体的环境,存储在环境本地的数据库中;

将配置的规则同步到具体的环境,存储在环境本地的数据库中。

可选的,这里提到的根据数据推送任务确定每个目的系统对应的待推送数据,其具体可以为:

接收源系统发送的原始数据,并根据数据推送任务从原始数据中确定每个目的系统对应的待推送数据。

可选的,这里提到的根据数据推送任务确定每个目的系统对应的待推送数据,其具体也可以为:

根据数据推送任务确定每个目的系统对应的待推送数据,并通过开放平台拉取接口从源系统中拉取待推送数据。

即本申请采集数据的方式可以灵活使用,具体可以根据业务环境进行选择。

S102:分别利用每个处理流程对每个目的系统对应的待推送数据进行处理,得到每个目的系统对应的终端数据;

可选的,这里提到的处理流程可以包括过滤处理及映射处理,在此基础上,这里提到的分别利用每个处理流程对每个目的系统对应的待推送数据进行处理,得到每个目的系统对应的终端数据,其具体可以为:

分别对每个目的系统对应的待推送数据进行过滤处理,得到每个目的系统对应的过滤数据;

分别对每个目的系统对应的过滤数据进行映射处理,得到每个目的系统对应的终端数据。

可选的,在分别利用每个处理流程对每个目的系统对应的待推送数据进行处理,得到每个目的系统对应的终端数据之前,还可以执行如下步骤实现对待推送数据的健康筛选:

对每个待推送数据进行健康检查,并将处于不健康状态的待推送数据移至死亡队列。

S103:将每个终端数据推送至对应的目的系统中。

基于上述技术方案,本申请所提供的一种数据推送的方法,通过分别利用每个处理流程对每个目的系统对应的待推送数据进行处理,得到每个目的系统对应的终端数据,最后将每个终端数据推送至对应的目的系统中,实现了相同或不同数据的分情况处理及推送,在面对大量不同业务数据推送到不同目的系统的情况时,本申请不需要针对每一种目的系统定制开发数据推送应用,避免了涉及的编码与工作量随着业务系统及目的系统的增加成指数增长,极大的提高了数据推送的效率,并降低了开发维护成本。

针对于上一实施例的步骤S103,其中所描述的将每个终端数据推送至对应的目的系统中,其具体也可以通过执行图2所示的步骤实现,下面结合图2进行说明。

请参考图2,图2为图1所提供的一种数据推送的方法中S103的一种实际表现方式的流程图。

其具体包括以下步骤:

S201:确定每个目的系统支持的通信协议,并通过路由匹配每个终端数据对应的渠道;

S202:分别通过渠道利用对应通信协议所允许的接口与每个目的系统进行连接,并将每个终端数据推送至对应的目的系统中。

可选的,在将每个终端数据推送至对应的目的系统中之后,还可以通过执行如下步骤实现数据的重新推送:

接收每个目的系统发送的推送反馈结果;

根据推送反馈结果进行结果统计,并对推送反馈结果为推送失败的终端数据进行重新推送;

记录重新推送次数,并在重新推送次数超过阈值时将终端数据移至死亡队列。

可选的,在确定每个目的系统支持的通信协议之前,还可以过滤预设时间内重复发送的终端数据,以避免终端数据的重复推送。

下面介绍本申请提供的一种应用实施例,请参考图3及图4,图3为本申请实施例所提供的一种数据推送过程的示意图;图4为本申请实施例所提供的一种数据推送过程的任务分布图。

如图3所示,在本申请中,对于源系统推送数据的采集,是由两种方式组成:一种是源系统主动发送数据至推送服务,一种是推送服务通过开放平台拉取接口拉取源系统中的推送数据;推送服务则通过映射规则,过滤规则等将推送数据解析为目的系统所需的终端数据,再通过路由匹配推送模块不同的渠道,推送模块实现与各种目的系统的通信协议,推送模块通过渠道利用协议允许的接口与目的系统进行连接,数据传输,解析等。与传统方案相比,本申请仅需要一个推送服务应用就能满足不同源系统推送不同目的系统,极大的提高了数据推送效率和节约成本。

如图4所示,本申请所提供的数据推送系统包括配置控制台模块、任务调度模块、推送核心模块、重试机制模块、FIO模块,其中:

配置控制台模块位于云配置中心,主要用于API任务管理配置,规则路由配置管理,任务、规则在线测试,同时还用于任务、规则同步到测试,生产等具体环境;

任务调度模块主要用于任务分布式调度执行,开放平台接口对接,任务执行结果查看等;

推送核心模块功能包括路由、过滤、映射、幂等、推送、推送结果确认、健康检查等,其中:

路由:找到数据对应接收的渠道;

过滤:根据过滤规则去除不需要的数据;

映射:将数据转换为目的网路需要的格式;

幂等:防止数据重复发送;

数据推送模块用于外部系统对接:将源系统中直接过来的数据或者推送服务投递过来的推送到目的系统;还负责各种协议转换,安全机制,数据格式(例如可以将外部xml数据转换为json数据);

重试机制模块会对任务执行失败后进行重新触发,推送目的网络失败根据重试机制进行重新推送。

现有技术中,一种源系统的数据推送至一个目的系统,需要开发与维护1个推送应用;一种源系统的数据推送至N(N>1)个目的系统,需要开发与维护N个推送应用;M(M>1)种源系统的数据推送至N(N>1)个目的系统,需要开发和维护M*N个推送应用;

而在本申请中,M(M>1)种源系统的数据推送至N(N>1)个目的系统,紧需要开发和维护1个推送应用,通过动态配置不同的任务、过滤、映射规则,满足各种源系统动态推送数据至不同的目的系统,通过实现任务调度系统的高并发、低延时,有效提高数据采集效率,通过多个规则集的匹配使用,极大扩展了系统的接入能力。

请参考图5,图5为本申请实施例所提供的一种数据推送的系统的结构图。

该系统可以包括:

接收模块100,用于接收数据推送任务,并根据数据推送任务确定目的系统、每个目的系统对应的待推送数据以及每个目的系统对应的处理流程;

处理模块200,用于分别利用每个处理流程对每个目的系统对应的待推送数据进行处理,得到每个目的系统对应的终端数据;

推送模块300,用于将每个终端数据推送至对应的目的系统中。

在上述实施例的基础上,在一个具体实施例中,该接收模块100可以包括:

第一确定子模块,用于根据数据推送任务确定配置文件;

第二确定子模块,用于根据配置文件确定每个目的系统对应的处理流程。

在上述实施例的基础上,在一个具体实施例中,该接收模块100可以包括:

第一修改子模块,用于根据输入的配置文件修改命令对配置文件进行修改;

第二修改子模块,用于根据修改后的配置文件对每个目的系统对应的处理流程进行修改。

在上述实施例的基础上,在一个具体实施例中,处理流程包括过滤处理及映射处理;

该处理模块200可以包括:

过滤子模块,用于分别对每个目的系统对应的待推送数据进行过滤处理,得到每个目的系统对应的过滤数据;

映射子模块,用于分别对每个目的系统对应的过滤数据进行映射处理,得到每个目的系统对应的终端数据。

在上述实施例的基础上,在一个具体实施例中,该接收模块100可以包括:

第一接收子模块,用于接收源系统发送的原始数据,并根据数据推送任务从原始数据中确定每个目的系统对应的待推送数据。

在上述实施例的基础上,在一个具体实施例中,该接收模块100可以包括:

拉取子模块,用于根据数据推送任务确定每个目的系统对应的待推送数据,并通过开放平台拉取接口从源系统中拉取待推送数据。

在上述实施例的基础上,在一个具体实施例中,该系统还可以包括:

健康检查模块,用于对每个待推送数据进行健康检查,并将处于不健康状态的待推送数据移至死亡队列。

在上述实施例的基础上,在一个具体实施例中,该推送模块300可以包括:

第三确定子模块,用于确定每个目的系统支持的通信协议,并通过路由匹配每个终端数据对应的渠道;

推送子模块,用于分别通过渠道利用对应通信协议所允许的接口与每个目的系统进行连接,并将每个终端数据推送至对应的目的系统中。

在上述实施例的基础上,在一个具体实施例中,该推送模块300还可以包括:

第二接收子模块,用于接收每个目的系统发送的推送反馈结果;

统计子模块,用于根据推送反馈结果进行结果统计,并对推送反馈结果为推送失败的终端数据进行重新推送;

记录子模块,用于记录重新推送次数,并在重新推送次数超过阈值时将终端数据移至死亡队列。

在上述实施例的基础上,在一个具体实施例中,该推送模块300还可以包括:

过滤子模块,用于过滤预设时间内重复发送的终端数据。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

请参考图6,图6为本申请实施例所提供的一种数据推送设备的结构图。

该数据推送设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,处理器622可以设置为与存储介质630通信,在数据推送设备600上执行存储介质630中的一系列指令操作。

数据推送设备600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述图1至图4所描述的数据推送的方法中的步骤由数据推送设备基于该图6所示的结构实现。

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

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

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

以上对本申请所提供的一种数据推送的方法、系统、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

相关技术
  • 一种数据推送的方法、系统、设备及可读存储介质
  • 数据推送方法、系统、计算机设备及计算机可读存储介质
技术分类

06120112389084