数据推送方法及装置、存储介质、计算机设备与流程

文档序号:19149755发布日期:2019-11-15 23:56阅读:169来源:国知局
数据推送方法及装置、存储介质、计算机设备与流程
本申请涉及数据处理领域,尤其是涉及到一种数据推送方法及装置、存储介质、计算机设备。
背景技术
:当今企业越来越重视自身管理信息系统及业务系统的研发,不断的新建或者升级改造原有的信息系统。随着企业业务越发完善和复杂,多个系统之间必然需要进行数据交互和业务交互,独立的系统也会划分越来越多的子系统。这些系统不在是信息孤岛。以往企业各个子系统之间传递数据会通过excel导入,导出的方式或者直接操作各子系统的数据库,这种方式显而易见会出现效率低下、权限分配复杂的情况。技术实现要素:有鉴于此,本申请提供了一种数据推送方法及装置、存储介质、计算机设备,利用数据推送系统作为数据推送的中间件,实现数据在不同业务系统之间的传输。根据本申请的一个方面,提供了一种数据推送方法,用于数据推送系统,所述数据推送系统包括接口层、处理层以及存储层,该方法包括:通过接口层的数据接收接口接收来自数据产生系统的业务数据;将所述业务数据保存在所述数据推送系统的存储层中;业务层读取所述业务数据中满足预设推送条件的有效数据,并推送所述有效数据。具体地,所述将所述业务数据保存在所述数据推送系统的存储层中,具体包括:获取所述业务数据对应的业务类型;将所述业务数据按照与所述业务类型匹配的预设数据存储格式保存在所述存储层中。具体地,所述将所述业务数据按照与所述业务类型匹配的预设数据存储格式保存在所述存储层中,具体包括:根据所述业务类型,分配所述业务数据对应的推送时间;将所述预设数据存储格式的所述业务数据以及所述业务数据对应的所述推送时间保存在所述存储层中。具体地,所述读取所述业务数据中满足预设推送条件的有效数据,具体包括:查询所述业务数据对应的所述推送时间;若所述推送时间小于或等于当前时间,则获取所述业务数据对应的推送设备地址;若所述推送设备地址为有效地址,则读取所述有效数据;若所述推送设备地址为无效地址,则按照预设延迟推送规则重新分配所述业务数据对应的新的推送时间。具体地,所述若所述推送设备地址为无效地址,则按照预设延迟推送规则重新分配所述业务数据对应的新的推送时间,具体包括:按照所述推送时间以及所述预设延迟推送规则中的按照时长非递减顺序排列的多个延迟推送时间,计算所述业务数据对应的所述新的推送时间,并对所述业务数据标记延迟推送标记,其中,所述新的推送时间为所述推送时间和所述延迟推送时间之和。具体地,所述计算所述业务数据对应的所述新的推送时间之后,所述方法还包括:对所述业务数据标记延迟推送标记,其中,若所述业务数据对应的所述延迟推送标记的数量达到预设延迟阈值,则将所述业务数据对应的所述推送时间更新为预设负值时间。具体地,所述推送所述有效数据,具体包括:按照所述有效数据对应的所述推送设备地址,将所述有效数据转发至与所述推送设备地址对应的目标服务器中;或者调用与所述有效数据对应的所述业务类型匹配的数据推送平台,以使所述数据推送平台按照所述推送设备地址进行所述有效数据的推送。根据本申请的另一方面,提供了一种数据推送装置,用于数据推送系统,所述数据推送系统包括接口层、处理层以及存储层,该装置包括:数据接收模块,用于通过接口层的数据接收接口接收来自数据产生系统的业务数据;数据存储模块,用于将所述业务数据保存在所述数据推送系统的存储层中;数据推送模块,用于业务层读取所述业务数据中满足预设推送条件的有效数据,并推送所述有效数据。具体地,所述数据存储模块,具体包括:类型获取单元,用于获取所述业务数据对应的业务类型;数据存储单元,用于将所述业务数据按照与所述业务类型匹配的预设数据存储格式保存在所述存储层中。具体地,所述数据存储单元,具体用于:根据所述业务类型,分配所述业务数据对应的推送时间;将所述预设数据存储格式的所述业务数据以及所述业务数据对应的所述推送时间保存在所述存储层中。具体地,所述数据推送模块,具体包括:推送时间查询单元,用于查询所述业务数据对应的所述推送时间;推送地址获取单元,用于若所述推送时间小于或等于当前时间,则获取所述业务数据对应的推送设备地址;有效数据读取单元,用于若所述推送设备地址为有效地址,则读取所述有效数据;推送时间分配单元,用于若所述推送设备地址为无效地址,则按照预设延迟推送规则重新分配所述业务数据对应的新的推送时间。具体地,所述推送时间分配单元,具体用于:按照所述推送时间以及所述预设延迟推送规则中的按照时长非递减顺序排列的多个延迟推送时间,计算所述业务数据对应的所述新的推送时间,并对所述业务数据标记延迟推送标记,其中,所述新的推送时间为所述推送时间和所述延迟推送时间之和。具体地,若所述业务数据对应的所述延迟推送标记的数量达到预设延迟阈值,则将所述业务数据对应的所述推送时间更新为预设负值时间。具体地,所述数据推送模块,具体包括:数据推送单元,用于按照所述有效数据对应的所述推送设备地址,将所述有效数据转发至与所述推送设备地址对应的目标服务器中;或者调用与所述有效数据对应的所述业务类型匹配的数据推送平台,以使所述数据推送平台按照所述推送设备地址进行所述有效数据的推送。依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述数据推送方法。依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述数据推送方法。借由上述技术方案,本申请提供的一种数据推送方法及装置、存储介质、计算机设备,利用数据推送系统对数据产生系统产生的业务数据进行接收和存储,并从存储的业务数据中筛选出符合预设推送条件的有效数据,从而实现有效数据向数据接收方系统的传输。本申请实施例利用数据推送系统作为数据推送的中间件,实现数据在不同业务系统之间的传输,与现有技术中通过excel导出、导入的方式或者直接操作各个业务系统的数据库的方式实现数据传输相比,本申请的方法效率更高,开发量更小、易于实现。上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1示出了本申请实施例提供的一种数据推送方法的流程示意图;图2示出了本申请实施例提供的另一种数据推送方法的流程示意图;图3示出了本申请实施例提供的一种数据推送装置的结构示意图;图4示出了本申请实施例提供的另一种数据推送装置的结构示意图。具体实施方式下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。在本实施例中提供了一种数据推送方法,用于数据推送系统,数据推送系统包括接口层、处理层以及存储层,如图1所示,该方法包括:步骤101,通过接口层的数据接收接口接收来自数据产生系统的业务数据。本申请实施例的数据推送系统包括接口层、处理层以及存储层,利用数据推送系统实现不同系统之间的数据传输,具体来说,数据推送系统的接口层负责对外提供数据接收接口,以使数据产生系统可以通过调用数据接收接口将业务数据发送到数据产生系统中,实现业务数据的接收。步骤102,将业务数据保存在数据推送系统的存储层中。数据推送系统的接口层接收到业务数据后,存储层负责将业务数据进行保存,以实现对数据产生系统产生的业务数据的存储,从而为后续业务数据推送提供基础。步骤103,业务层读取业务数据中满足预设推送条件的有效数据,并推送有效数据。数据推送系统的业务层可以从存储层保存的业务数据进行查询,从而在业务数据中读取出满足预设推送条件的有效数据,从而将读取的有效数据推送至相应的业务系统中,实现不同业务系统之间的数据传输,无需将数据产生系统和数据接收方的业务系统进行打通,利用数据推送系统即可实现不同业务系统之间的数据传输需要说明的是,存储层采用主从配置,其中主库负责写入数据,从库负责查询操作。实现读写分离,当推送消息足够大的时候,能够有效的减轻数据库的压力,提高消息读取速度,从而能够更及时的对消息进行分发。通过应用本实施例的技术方案,利用数据推送系统对数据产生系统产生的业务数据进行接收和存储,并从存储的业务数据中筛选出符合预设推送条件的有效数据,从而实现有效数据向数据接收方系统的传输。本申请实施例利用数据推送系统作为数据推送的中间件,实现数据在不同业务系统之间的传输,与现有技术中通过excel导出、导入的方式或者直接操作各个业务系统的数据库的方式实现数据传输相比,本申请的方法效率更高,开发量更小、易于实现。进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种数据推送方法,如图2所示,该方法包括:步骤201,通过接口层的数据接收接口接收来自数据产生系统的业务数据。在上述实施例中,接口层除了可以接收数据产生系统的业务数据外,另外,接口层还可以提供数据校验接口,对接收到的数据进行数据长度的校验,例如业务数据的字节数超过最大字节数或者字节数为0都表明接收到的业务数据可能是异常数据,则可以将这些数据删除。步骤202,获取业务数据对应的业务类型。在上述实施例中,在进行业务数据的存储时,业务层可以将业务数据按照业务类型存储在系统的存储层中,从而便于数据的查询和推送。步骤203,将业务数据按照与业务类型匹配的预设数据存储格式保存在存储层中。在上述实施例中,获取业务数据对应业务类型后,将业务数据按照业务类型相应的预设数据存储格式进行存储,例如,对业务数据进行压缩存储。在步骤203中,具体地,根据业务类型,分配业务数据对应的推送时间;将预设数据存储格式的业务数据以及业务数据对应的推送时间保存在存储层中。在上述实施例中,在进行数据存储时,业务层还需要对业务数据分配相应的推送时间,以保证业务数据可以按照所分配的推送时间实现数据的推送,具体的推送时间应按照业务数据的创建时间(这里的创建时间是指业务数据在数据推送系统中的创建时间,即数据推送系统接收到业务数据的时间)结合业务类型确定业务数据的推送时间,例如业务数据a的创建时间为12点,业务数据a对应的业务类型需要实现在1小时后进行推送,那么业务数据a对应的推送时间可以保存为13点。表1示出了本申请的一个具体实施例中的业务数据的存储结构示例。表1中的推送消息可以理解为本申请实施例中的业务数据。表1字段中文含义类型是否允许为空id主键bigint不允许userid用户idbigint不允许clientid推送设备idvarchar(255)允许type推送类型int不允许message推送消息varchar(4000)不允许pushtime推送时间bigint不允许createtime创建时间bigint不允许步骤204,查询业务数据对应的推送时间。数据推送系统的业务层实时对存储层中的业务数据进行查询,具体应查询每条业务数据对应推送时间,从而判断业务数据是否应被推送。步骤205,若推送时间小于或等于当前时间,则获取业务数据对应的推送设备地址。若业务数据对应的推送时间与当前时间相符,说明业务数据此时应被推送,那么获取业务数据对应的推送设备id,从而校验推送设备id是否有效,是否应该对业务数据进行推送。为了避免应推送的消息被漏掉,推送时间的判断边间条件应有所放宽,除推送时间小于或等于当前时间外,还可以设置在推送时间小于当前时间时,获取业务数据对应的推送设备id,从而避免在上一次的查询过程中遗漏的业务数据无法被及时推送。需要说明的是,本申请实施例中为了减少查询出重复数据,这个查询的操作是同步的,即等上次查询操作执行完,才会执行下一次的查询操作。查询频率根据业务需求确定,例如每隔100ms或者1s查询一次。步骤206,若推送设备地址为有效地址,则读取有效数据。如果推送设备id已在系统中注册过且当前没有注销,则推送设备id有效,此时由业务层在存储层中存储的业务数据中读取出即将进行推送的有效数据,以便实现有效数据的推送。步骤207,若推送设备地址为无效地址,则按照预设延迟推送规则重新分配业务数据对应的新的推送时间。如果推送设备id没有在系统中注册过或者注册过但是当前已被注销,说明该数据当前不能被推送,则需要按照预先设置的延迟推送规则重新为业务数据分配新的推送时间,从而按照新的推送时间进行数据推送。具体地,按照推送时间以及预设延迟推送规则中的按照时长非递减顺序排列的多个延迟推送时间,计算业务数据对应的新的推送时间,并对业务数据标记延迟推送标记,其中,新的推送时间为推送时间和延迟推送时间之和。具体地,对业务数据标记延迟推送标记,其中,若业务数据对应的延迟推送标记的数量达到预设延迟阈值,则将业务数据对应的推送时间更新为预设负值时间。在上述实施例中,预设延迟推送规则中规定了多个按照时长非递减顺序依次排列的延迟推送时间,在推送设备地址为无效地址时,对业务数据重新分配新的推送时间,例如业务数据原来的推送时间为13点,多个延迟推送时间依次为5分钟、10分钟、30分钟……,则第一次计算的业务数据的新的推送时间为13点零5分,并且在重新计算推送时间时为数据数据标记上一个延迟推送标记,以表明该业务数据曾经推送失败,而若该业务数据在13点零5分时仍不满足推送条件,则第二次计算业务数据的推送时间,即13点零5分+10分钟=13点零15分,并再次标记一个延迟推送标记,如果该业务数据经历过多次推送失败,即业务数据被标记的延迟推送标记超过预设延迟阈值时,说明该业务数据可能已经失效不需要再被推送,则直接将业务数据的推送时间分配为一个负值,使该业务数据不会再被查询、推送。步骤208,按照有效数据对应的推送设备地址,将有效数据转发至与推送设备地址对应的目标服务器中;或者调用与有效数据对应的业务类型匹配的数据推送平台,以使数据推送平台按照推送设备地址进行有效数据的推送。在上述实施例中,业务层读取有效数据后,可以直接通过业务层将有效数据推送到与该业务数据对应的目标业务服务器中,或者通过业务层调用第三方推送平台实现有效数据向目标业务服务器的推送。通过应用本实施例的技术方案,通过开放api接口接收业务数据,得到待推送消息,对业务数据进行长度校验、格式转换等处理后保存在存储层中,业务层实时查询符合推送条件的消息,并将符合条件的消息转发到其他应用服务器或者第三方推送服务平台中进行消息的推送,从而实现不同系统之间的数据传输。本申请实施例的技术方案具有以下优点:1、跨操作系统跨编程语言;2、扩展性好;3、技术门槛低;4、轻量级,占用系统资源小。进一步的,作为图1方法的具体实现,本申请实施例提供了一种数据推送装置,如图3所示,该装置包括:数据接收模块31、数据存储模块32、数据推送模块33。数据接收模块31,用于通过接口层的数据接收接口接收来自数据产生系统的业务数据;数据存储模块32,用于将业务数据保存在数据推送系统的存储层中;数据推送模块33,用于业务层读取业务数据中满足预设推送条件的有效数据,并推送有效数据。在具体的应用场景中,如图4所示,数据存储模块32,具体包括:类型获取单元321、数据存储单元322。类型获取单元321,用于获取业务数据对应的业务类型;数据存储单元322,用于将业务数据按照与业务类型匹配的预设数据存储格式保存在存储层中。具体地,数据存储单元322,具体用于根据业务类型,分配业务数据对应的推送时间;将预设数据存储格式的业务数据以及业务数据对应的推送时间保存在存储层中。具体地,数据推送模块33,具体包括:推送时间查询单元331、推送地址获取单元332、有效数据读取单元333、推送时间分配单元334。推送时间查询单元331,用于查询业务数据对应的推送时间;推送地址获取单元332,用于若推送时间小于或等于当前时间,则获取业务数据对应的推送设备地址;有效数据读取单元333,用于若推送设备地址为有效地址,则读取有效数据;推送时间分配单元334,用于若推送设备地址为无效地址,则按照预设延迟推送规则重新分配业务数据对应的新的推送时间。具体地,推送时间分配单元334,具体用于按照推送时间以及预设延迟推送规则中的按照时长非递减顺序排列的多个延迟推送时间,计算业务数据对应的新的推送时间,并对业务数据标记延迟推送标记,其中,新的推送时间为推送时间和延迟推送时间之和。具体地,若业务数据对应的延迟推送标记的数量达到预设延迟阈值,则将业务数据对应的推送时间更新为预设负值时间。具体地,数据推送模块33,具体包括:数据推送单元335。数据推送单元335,用于按照有效数据对应的推送设备地址,将有效数据转发至与推送设备地址对应的目标服务器中;或者调用与有效数据对应的业务类型匹配的数据推送平台,以使数据推送平台按照推送设备地址进行有效数据的推送。需要说明的是,本申请实施例提供的一种数据推送装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的数据推送方法。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。基于上述如图1、图2所示的方法,以及图3、图4所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的数据推送方法。可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(radiofrequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、wi-fi接口)等。本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1