CN110247963A - 一种数据推送方法及系统 - Google Patents
一种数据推送方法及系统 Download PDFInfo
- Publication number
- CN110247963A CN110247963A CN201910469238.1A CN201910469238A CN110247963A CN 110247963 A CN110247963 A CN 110247963A CN 201910469238 A CN201910469238 A CN 201910469238A CN 110247963 A CN110247963 A CN 110247963A
- Authority
- CN
- China
- Prior art keywords
- data
- receiving end
- propelling
- cache
- propelling data
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Abstract
本申请涉及数据传输技术领域,特别涉及一种数据推送方法及系统;其方法包括:获取待推送数据;基于所述待推送数据与接收端的对应关系,将所述待推送数据缓存;当到达接收端的数据推送时间时,向对应的接收端推送所述待推送数据;本申请的技术方案中将数据直推进行了先缓存再让接收端拉取的改进,由于改进后接收端不需要高频率接收数据,所以有效减轻了接收端的服务压力。
Description
技术领域
本申请涉及数据传输技术领域,特别涉及一种数据推送方法及系统。
背景技术
在大数据时代,每时每刻都会产生海量数据,数据从源头采集,解析,处理,存库到最终可视化平台的展示等一系列数据流的操作,对系统性能要求都非常高。实际应用中,往往会因为数据量过大,数据传输频率过高,导致服务器宕机卡死,特别是对需要实时展示数据的平台,用户体验度极其低下。高效,稳定,可靠的信息推送组件,成为一个基于大数据实时展示系统不可或缺的组成部分。基于此应用场景,有不同解决方案,比如:实时推送方案,即将采集到的数据信息直接推送给展示端,展示端实时渲染动态数据;当数据量大,数据采集频率高时,展示端渲染压力过大,造成卡死现象。(2)定时获取方案,此方案是实时数据持久化,并对外提供获取数据接口,展示端或接收端开定时任务,定时不间断调用接口获取数据。该方案的缺陷简要是不管是否有数据被采集,展示端或接收端都要定时任务不间断执行,造成系统资源浪费。
发明内容
本申请的目的是提供一种数据推送方法及系统,能够使得数据接收端不再需要高频率接收数据,有效减轻了数据接收端的服务压力,而且无需接收端不间断执行定时任务,避免系统资源浪费。
根据本申请的一些实施例的第一方面,本申请的实施例提供了一种数据推送方法,包括:获取待推送数据;
基于所述待推送数据与接收端的对应关系,将所述待推送数据缓存;当到达接收端的数据推送时间时,向对应的接收端推送所述待推送数据。
可选地,所述待推送数据携带数据识别标识。
可选地,基于所述待推送数据与接收端的对应关系,将所述待推送数据缓存,包括:基于预存的数据识别标识与接收端编码的关联关系,获取所述待推送数据对应的接收端编码,所述接收端编码为所述接收端的身份识别信息;
基于所述接收端编码作为缓存集合的标识,将对应的接收端的所述待推送数据缓存至与该接收端的接收端编码作为标识的所述缓存集合;其中,所述缓存集合为key-value数据库;所述缓存集合中的每个待推送数据为value,且每个待推送数据相应地具有键值key。
可选地,,所述方法还包括:预获取产生所述待推送数据的数据源的数据识别标识;
所述数据识别标识用于唯一标识数据源的产生的待推送数据;
获取接收端的接收端编码;
建立接收端编码与所述数据识别标识的关联关系;
存储所述关联关系。
可选地,所述方法还包括:构建环形链表;根据预设的与所述接收端对应的数据推送时间设定所述环形链表的指针的数量;
每个指针对应一个缓存节点;每个缓存节点的指针指向下一个缓存节点;
所述环形链表的最后一个缓存节点的指针指向所述环形链表的第一个存储节点。
可选地,所述方法还包括:获取时间设置指令;根据时间设置指,为所述接收端设置数据推送时间。
可选地,所述方法还包括:获取定时推送开启指令;基于所述定时推送开启指令,每单位时间分别从与所述接收端编码对应的缓存集合中获取所述待推送数据的键值key,并获取对应的接收端编码;
将每个单位时间扫描的所述待推送数据的键值key和与其对应的所述接收端编码作为一组数据,并按照由第一个缓存节点至最后一个缓存节点的缓存顺序缓存在环形链表中;
记录环形链表中已存储有待推送数据的缓存节点的指针;
当指针再次回到环形链表中的第一个缓存节点的指针时,确定到达接收端的数据推送时间。
可选地,所述向对应的接收端推送所述待推送数据的方法包括:将环形链表中缓存节点存储的待推送数据的键值key,发送至与缓存节点中存储的接收端编码对应的接收端,以供接收端根据键值key在缓存集合中拉取相应的待推送数据。
可选地,所述方法还包括:为缓存集合中的每条待推送数据分别设置有效缓存时长;当有待推送数据的缓存时长超过有效缓存时长时,从缓存集合中清除该条待推送数据。
可选地,向对应的接收端推送所述待推送数据后,所述方法还包括:清空环形链表中缓存节点缓存的数据;同时返回到所述每单位时间分别从与所述接收端编码对应的缓存集合中获取所述待推送数据的键值key,并获取对应的接收端编码的步骤。
可选地,所述获取待推送数据的方法包括:建立多个数据传输线程;
将所述待获取数据待推送数据以消息队列的方式接入所述多个数据传输线程;
基于所述数据识别标识,获取与所述数据识别标识绑定的所述消息队列;
通过负载算法获取所述消息队列中的所述待获取数据待推送数据。
根据本申请的另一方面,本申请的实施例还提供了一种数据推送系统,包括:
存储器,被配置为存储数据及指令;
与存储器建立通信的处理器;
其中,当执行存储器中的指令时,所述处理器被配置为执行以上任一项所述的方法的操作。
本申请的技术方案中将数据直推进行了先缓存再让接收端拉取的改进,由于改进后接收端不需要高频率接收数据,所以有效减轻了接收端的服务压力。
附图说明
为更好地理解并阐述本申请的一些实施例,以下将结合附图参考实施例的描述,在这些附图中,同样的数字编号在附图中指示相应的部分。
图1是根据本申请的一些实施例提供的系统环境的示例性示意图;
图2是本申请的一些实施例提供的电子设备功能配置的示例性单元框图;
图3为本申请的实施例提供的数据推送方法的示意性流程图;
图4是本申请的实施例提供的缓存待推送数据的方法的示意性流程图;
图5为本申请的实施例提供的建立接收端编码与数据识别标识的关联关系的方法的示意性流程图;
图6为本申请的实施例提供的确定所述待推送数据的缓存时间是否到达接收端的数据推送时间的方法的示意性流程图;
图7为环形链表的示意性结构示意图。
具体实施方式
以下参考附图的描述为便于综合理解有权利要求及其等效内容所定义的本申请的各种实施例;这些实施例包括各种特定细节以便于理解,但这些仅被视为示例性的。因此,本领域技术人员可以理解对在此描述的各种实施例进行各种变化和修改而不会脱离本申请的范围和精神。另外,为简要并清楚地描述本申请,本申请将省略对公知功能和结构的描述。
根据本申请一些实施例的接收端可以是电子设备,该电子设备可以包括智能手机、个人电脑(PC,例如平板电脑、台式电脑、笔记本、上网本、掌上电脑PDA)、移动电话、电子书阅读器、便携式多媒体播放器(PMP)、音频/视频播放器(MP3/MP4)、摄像机、虚拟现实设备(VR)和可穿戴设备等中的一种或几种的组合。根据本申请的一些实施例,所述可穿戴设备包括附件类型(例如手表、戒指、手环、眼镜、或头戴式装置(HMD))、集成类型(例如电子服装)、装饰类型(例如皮肤垫、纹身或内置电子装置)等中的一种或几种的组合。在本申请的一些实施例中,所述电子设备可以是灵活的,不限于上述设备,或者可以是上述各种设备中的一种或几种的组合。在本申请中,术语“用户”可指示使用电子设备的人或使用电子设备的设备(例如人工智能电子设备)。
根据本申请一些实施例的接收端也可以客户端如:APP等各类软件端、网页端等,以及服务器等。
本申请实施例提供了一种数据推送方法及系统。为了便于理解本申请实施例,以下将参考附图对本申请实施例进行详细描述。
图1是根据本申请的一些实施例提供的网络环境的示例性示意图。如图1所示,网络环境可以包括系统本体110、网络120和数据源130等。系统本体110可以包括总线111、处理器112、缓存器113、输入/输出模块114、显示器115、通信模块116等。在本申请的一些实施例中,系统本体110可以省略一个或多个元件,或者可以进一步包括一个或多个其他元件。
总线111可以包括电路。所述电路可以互连系统本体110内的一个或多个元件(例如,总线111、处理器112、缓存器113、输入/输出模块114、显示器115和通信模块116)。所述电路也可以在系统本体110内的一个或多个元件之间实现通信(例如,获取和/或发送数据)。
处理器112可以包括一个或多个协处理器(Co-processor)、应用处理器(AP,ApplicationProcessor)和通信处理器(CommunicationProcessor)。作为示例,处理器112可以执行与系统本体110的一个或多个元件的控制和/或数据处理。
缓存器113可以缓存数据。所述数据可以包括与系统本体110中的一个或多个其它元件相关的指令或数据。例如,所述数据可以包括处理器112处理前的原始数据,中间数据和/或处理后的数据。具体而言,缓存器113可以待推送数据、数据识别标识、接收端编码等。缓存器113可以包括非永久记忆性缓存器和/或永久记忆性缓存器。
根据本申请的一些实施例,缓存器113可以缓存软件和/或程序。所述程序可以包括内核、中间件、应用编程接口(API,ApplicationProgrammingInterface)和/或应用程序。所述内核、所述中间件或所述应用编程接口的至少一部分可以包括操作系统(OS,OperatingSystem)。作为示例,所述内核可以控制或管理用于执行其他程序(例如,中间件、应用编程接口和应用程序)中实现的操作或功能的系统资源(例如,总线111、处理器112、缓存器113等)。此外,所述内核可以提供接口。所述接口可以通过所述中间件、所述应用编程接口或所述应用程序访问系统本体110的一个或多个元件以控制或管理系统资源。
所述中间件可以作为数据传输的中间层。所述数据传输可以允许应用编程接口或应用程序与所述内核通信用以交换数据。作为示例,所述中间件可以处理从所述应用程序获取的一个或多个任务请求。例如,所述中间件可以向一个或多个应用程序分配系统本体110的系统资源(例如,总线111、处理器112、缓存器113等)的优先级,以及处理所述一个或多个任务请求。所述应用编程接口可以是所述应用程序用于控制从所述内核或所述中间件提供功能的接口。所述应用编程接口也可以包括一个或多个接口或功能。所述功能可以用于安全控制、通信控制、文件控制、窗口控制、文本控制、图像处理、信号处理等。
输入/输出模块114可以向系统本体110的其他元件发送从用户或外部设备输入的指令(如输入的定时推送开启指令或时间设置指令)或数据(如数据源130输入的待推送数据);输入/输出模块114也可以将从系统本体110的其他元件获取的指令或数据输出给用户或外部设备。
显示器115可以显示内容。所述内容可以向用户显示各种类型(例如,文本、图像、视频、图标和/或符号)。显示器115可以包括液晶显示器(LCD,LiquidCrystalDisplay)、发光二极管(LED,Light-EmittingDiode)显示器、有机发光二极管(OLED,OrganicLightEmittingDiode)显示器、微型机电系统(MEMS,MicroElectroMechanicalSystems)显示器或电子纸显示器等,或几种的组合。显示器115可以包括触摸屏。在一些实施例中,显示器115可以显示虚拟键。所述触摸屏可以获取所述虚拟键的输入。显示器115可以通过所述触摸屏获取输入。所述输入可以包括触摸输入、手势输入、动作输入、接近输入、电子笔或用户身体部分的输入。
通信模块116可以配置设备之间的通信。在一些实施例中,网络环境可以进一步包括接收端140。作为示例,所述设备之间的通信可以包括系统本体110和其他设备(例如,数据源130或接收端140)之间的通信。例如,通信模块116可以通过无线通信或有线通信连接到网络120,与其他设备(例如,接收端140)实现通信。
所述无线通信可以包括微波通信和/或卫星通信等。
网络120可以包括通信网络。所述通信网络可以包括计算机网络(例如,局域网(LAN,LocalAreaNetwork)或广域网(WAN,WideAreaNetwork))、互联网和/或电话网络等,或几种的组合。网络120可以向网络环境系统100中的其他设备(例如,系统本体110、数据源130、接收端140等)发送信息。
数据源130可以通过网络120连接网络环境中的其他设备(例如,系统本体110、接收端140等)。
本申请中,数据源可以是物联网设备,如各类传感器,或带有各类传感器的智能设备,能够产生各种数据。
接收端140可以与系统本体110相同或不同的类型。根据本申请的一些实施例,在系统本体110中执行的部分或全部操作可以在另一设备或多个设备(例如,接收端140)中执行。在一些实施例中,当系统本体110自动或响应于请求执行一种或多种功能和/或服务时,系统本体110可以请求其他设备(例如,接收端140)替代执行功能和/或服务。在一些实施例中,系统本体110除执行功能或服务外,进一步执行与其相关的一种或多种功能。在一些实施例中,其他设备(例如,接收端140)可以执行所请求的功能或其它相关的一种或多种功能,可以将执行结果发送给系统本体110。系统本体110可以重复执行结果或进一步处理执行结果,以提供所请求的功能或服务。
在一些实施例中,系统本体110通过通信模块116经由网络120将环形链表中缓存节点存储的待推送数据的键值key,发送至与缓存节点中存储的接收端编码对应的接收端140,以供接收端140根据键值key在缓存集合中拉取相应的待推送数据。
需要说明的是,以上对于网络环境的描述,仅为描述方便,并不能把本申请限制在所举实施例的范围之内。可以理解,对于本领域技术人员,基于本系统的原理,可能在不背离该原理的前提下,对各个元件进行任意组合,或者构成子系统与其他元件连接,对实施上述方法和系统的应用领域进行形式和细节上的各种修正和改变。例如,网络环境可以进一步包括数据库等。诸如此类的变形,均在本申请的保护范围之内。
图2是根据本申请的一些实施例提供的系统配置的示例性单元框图。如图2所示,处理器112可以包括处理模块200,所述处理模块200可以包括获取单元210、分析单元220、控制单元230。
根据本申请的一些实施例,获取单元210可以获取信息。所述信息可以包括但不限于文字、图片、音频、视频、动作、手势等,或几种的组合。在一些实施例中,获取单元210可以通过输入/输出模块114、显示器115的触摸屏获取输入信息。作为示例,获取单元210可以获取系统本体110的输入信息。所述输入信息可以包括按键输入、触控输入、手势输入、动作输入、远程输入、传输输入等,或几种的组合。
在一些实施例中,获取单元210可以获取数据源产生的待推送数据等。
根据本申请的一些实施例,分析单元220至少能够对获取单元210获取的信息以及存储器113中缓存的信息进行分析。在一些实施例中,分析单元220能够分析获取单元210获取的待推送数据等,如获取单元210可基于存储器113中预存的数据识别标识与接收端编码的关联关系,获取所述待推送数据对应的接收端编码;
分析单元220能够分析数据识别标识与接收端编码的关联关系,并分析出接收端编码标识的缓存集合。
根据本申请的一些实施例,控制单元230可以控制电子设备。所述控制电子设备可以包括控制系统本体110执行动作。在一些实施例中,控制单元230可向对应的接收端推送所述待推送数据等。在一些实施例中,控制单元230根据分析单元220的分析结果,如根据分析单元220分析出的接收端编码标识的缓存集合,将对应的接收端的所述待推送数据缓存至与该接收端的接收端编码作为标识的所述缓存集合。再如:控制单元230根据获取单元210获取的预获取产生所述待推送数据的数据源的数据识别标识和接收端的接收端编码,建立接收端编码与所述数据识别标识的关联关系;并通过存储器113存储所述关联关系。
需要说明的是,以上对于处理模块200中的单元描述,仅为描述方便,并不能把本申请限制在所举实施例的范围之内。可以理解,对于本领域技术人员,基于本系统的原理,可能在不背离该原理的前提下,对各个单元进行任意组合,或者构成子模块与其他单元连接,对实施上述模块和单元的功能进行形式和细节上的各种修正和改变。例如,系统本体110可以进一步包括传感器等,获取单元210可以通过传感器获取信息。又例如,处理单元220可以进一步包括划分子单元等。诸如此类的变形,均在本申请的保护范围之内。
为了进一步详细说明本申请的技术方案的详细流程步骤,下面将结合流程图进行进一步说明。
请参照图3,图3为本申请的实施例提供的数据推送方法的示意性流程图;
如图3所示,所述方法包括:
步骤S310:获取待推送数据;待推送数据可以包括但不限于文字、图片、音频数据等,也可以包括各类传感器或智能设备产生的视频数据、温度值、压力值、气压值、电流值、电压值、重力值、高度值、深度值等数据,也可以是系统或服务器传输的分析数据、监测数据等,在此不对数据的具体内容或具体类型作出限定,用户可以根据所需的数据类型,使用相应的数据源设备接入。
步骤S320:基于所述待推送数据与接收端的对应关系,将所述待推送数据缓存;
步骤S330:当到达接收端的数据推送时间时,向对应的接收端推送所述待推送数据,其中,向对应的接收端推送所述待推送数据是指:向对应的接收端推送所述待推送数据的key值,接收端可以根据待推送数据的key值拉取待推送数据。
本申请的技术方案中将数据直推进行了先缓存再让接收端拉取的改进,由于改进后接收端不需要高频率接收数据,所以有效减轻了接收端的服务压力。
作为一种可选的实施例,所述待推送数据携带数据识别标识;数据识别标识可以是如物联网中设备的id号,旨在唯一标识物联网中的该设备所产生的数据。
请参照图4,图4是本申请的实施例提供的缓存待推送数据的方法的示意性流程图;
如图4所示,所述基于所述待推送数据与接收端的对应关系,将所述待推送数据缓存的方法包括:
步骤S410:基于预存的数据识别标识与接收端编码的关联关系,获取所述待推送数据对应的接收端编码,所述接收端编码为所述接收端的身份识别信息;
步骤S420:基于所述接收端编码作为缓存集合的标识,也即作为缓存集合的key值,用来标识和找到这个集合,将对应的接收端的所述待推送数据缓存至与该接收端的接收端编码作为标识的所述缓存集合;
其中,所述缓存集合为key-value数据库;具体可以通过redis中set集合实现。
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便
所述缓存集合中的每个待推送数据为value,且每个待推送数据相应地具有键值key。
请参照图5,图5为本申请的实施例提供的建立接收端编码与数据识别标识的关联关系的方法的示意性流程图;
如图5所示,所述方法包括:
步骤S510:预获取产生所述待推送数据的数据源的数据识别标识;
所述数据识别标识用于唯一标识数据源的产生的待推送数据;
步骤S520:获取接收端的接收端编码;
步骤S530:建立接收端编码与所述数据识别标识的关联关系;
步骤S540:存储所述关联关系,可以使用高性能搜索服务器elasticsearch存储关联关系,以便于能够快速查找和搜索到关联关系。
作为一种可选的实施例,所述方法还包括:
构建环形链表;如图7所示,其为环形链表的示意性结构示意图;
根据预设的与所述接收端对应的数据推送时间设定所述环形链表的指针的数量;比如设置4秒推送一次,那么如图7所示,设置了4个指针,也即设置了4个缓存节点;所谓的指针,即时每个缓存节点的索引;
每个指针对应一个缓存节点;
每个缓存节点的指针指向下一个缓存节点;
所述环形链表的最后一个缓存节点的指针指向所述环形链表的第一个存储节点。
作为一种可选的实施例,所述方法还包括:
获取时间设置指令;
根据时间设置指令,为所述接收端设置数据推送时间。
请参照图6,图6为本申请的实施例提供的确定所述待推送数据的缓存时间是否到达接收端的数据推送时间的方法的示意性流程图;
如图6所示,所述方法包括:
步骤S610:获取定时推送开启指令;
步骤S620:基于所述定时推送开启指令,每单位时间分别从与所述接收端编码对应的缓存集合中获取所述待推送数据的键值key,并获取对应的接收端编码;
步骤S630:将每个单位时间扫描的所述待推送数据的键值key和与其对应的所述接收端编码作为一组数据,并按照由第一个缓存节点至最后一个缓存节点的缓存顺序缓存在环形链表中;
步骤S640:记录环形链表中已存储有待推送数据的缓存节点的指针;
步骤S650:当指针再次回到环形链表中的第一个缓存节点的指针时,确定到达接收端的数据推送时间。
作为一种可选的实施例,所述向对应的接收端推送所述待推送数据的方法包括:
将环形链表中缓存节点存储的待推送数据的键值key,发送至与缓存节点中存储的接收端编码对应的接收端,以供接收端根据键值key在缓存集合中拉取相应的待推送数据。其中,数据接收端可以根据键值key查找到相应的数据;将键值key发送至接收端,远比将数据直接发送给接收端更能减少系统压力,也能缓解需要接收的数据较多或较大造成的接收端的接收压力大的问题;将key值发送给接收端,接收端可以根据自身情况如负载情况决定是否基于key值获取数据,如负载高的时候,暂不获取,负载低的时候再获取,使得接收端具有数据获取的主动权,而不再是被动的接收,缓解接收端压力。
作为一种可选的实施例,所述方法还包括:
为缓存集合中的每条待推送数据分别设置有效缓存时长;
当有待推送数据的缓存时长超过有效缓存时长时,从缓存集合中清除该条待推送数据。
指定用户分别缓存其动态指定的时间内的数据,并设置缓存有效时间,减少系统资源浪费,缓存数据用于缓解业务系统获取数据频率,减少业务系统服务器压力。
作为一种可选的实施例,向对应的接收端推送所述待推送数据后,所述方法还包括:
清空环形链表中缓存节点缓存的数据;
同时返回到所述每单位时间分别从与所述接收端编码对应的缓存集合中获取所述待推送数据的键值key,并获取对应的接收端编码的步骤。
作为一种可选的实施例,所述获取待推送数据的方法包括:
建立多个数据传输线程;
将所述待获取数据待推送数据以消息队列的方式接入所述多个数据传输线程;
基于所述数据识别标识,获取与所述数据识别标识绑定的所述消息队列;
通过负载算法获取所述消息队列中的所述待获取数据待推送数据。
根据本申请的另一方面,本申请的实施例还提供了一种数据推送系统,包括:
存储器,被配置为存储数据及指令;
与存储器建立通信的处理器;
其中,当执行存储器中的指令时,所述处理器被配置为执行如上所述的方法的操作;其中,如图1中所示,所述系统还可以包括通信模块116等,在此不再赘述。
本申请旨在保护一种种数据推送方法及种数据推送系统;将数据直推进行了先缓存再让接收端拉取的改进,由于改进后接收端不需要高频率接收数据,所以有效减轻了接收端的服务压力。
需要注意的是,上述的实施例仅仅是用作示例,本申请不限于这样的示例,而是可以进行各种变化。
需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,所述的程序可缓存于一计算机可读缓存介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的缓存介质可为磁碟、光盘、只读缓存器(Read-Only Memory,ROM)或随机缓存器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请一些优选的实施例,不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (12)
1.一种数据推送方法,其特征在于,包括:
获取待推送数据;
基于所述待推送数据与接收端的对应关系,将所述待推送数据缓存;
当到达接收端的数据推送时间时,向对应的接收端推送所述待推送数据。
2.根据权利要求1所述的数据推送方法,其特征在于,所述待推送数据携带数据识别标识。
3.根据权利要求2所述的方法,其特征在于,基于所述待推送数据与接收端的对应关系,将所述待推送数据缓存,包括:
基于预存的数据识别标识与接收端编码的关联关系,获取所述待推送数据对应的接收端编码,所述接收端编码为所述接收端的身份识别信息;
基于所述接收端编码作为缓存集合的标识,将对应的接收端的所述待推送数据缓存至与该接收端的接收端编码作为标识的所述缓存集合;
其中,所述缓存集合为key-value数据库;
所述缓存集合中的每个待推送数据为value,且每个待推送数据相应地具有键值key。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
预获取产生所述待推送数据的数据源的数据识别标识;
所述数据识别标识用于唯一标识数据源的产生的待推送数据;
获取接收端的接收端编码;
建立接收端编码与所述数据识别标识的关联关系;
存储所述关联关系。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
构建环形链表;
根据预设的与所述接收端对应的数据推送时间设定所述环形链表的指针的数量;
每个指针对应一个缓存节点;
每个缓存节点的指针指向下一个缓存节点;
所述环形链表的最后一个缓存节点的指针指向所述环形链表的第一个存储节点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取时间设置指令;
根据时间设置指令,为所述接收端设置数据推送时间。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
获取定时推送开启指令;
基于所述定时推送开启指令,每单位时间分别从与所述接收端编码对应的缓存集合中获取所述待推送数据的键值key,并获取对应的接收端编码;
将每个单位时间扫描的所述待推送数据的键值key和与其对应的所述接收端编码作为一组数据,并按照由第一个缓存节点至最后一个缓存节点的缓存顺序缓存在环形链表中;
记录环形链表中已存储有待推送数据的缓存节点的指针;
当指针再次回到环形链表中的第一个缓存节点的指针时,确定到达接收端的数据推送时间。
8.根据权利要求7所述的方法,其特征在于,所述向对应的接收端推送所述待推送数据的方法包括:
将环形链表中缓存节点存储的待推送数据的键值key,发送至与缓存节点中存储的接收端编码对应的接收端,以供接收端根据键值key在缓存集合中拉取相应的待推送数据。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
为缓存集合中的每条待推送数据分别设置有效缓存时长;
当有待推送数据的缓存时长超过有效缓存时长时,从缓存集合中清除该条待推送数据。
10.根据权利要求8所述的方法,其特征在于,向对应的接收端推送所述待推送数据后,所述方法还包括:
清空环形链表中缓存节点缓存的数据;
同时返回到所述每单位时间分别从与所述接收端编码对应的缓存集合中获取所述待推送数据的键值key,并获取对应的接收端编码的步骤。
11.根据权利要求1所述的方法,其特征在于,所述获取待推送数据的方法包括:
建立多个数据传输线程;
将所述待获取数据待推送数据以消息队列的方式接入所述多个数据传输线程;
基于所述数据识别标识,获取与所述数据识别标识绑定的所述消息队列;
通过负载算法获取所述消息队列中的所述待获取数据待推送数据。
12.一种数据推送系统,其特征在于,包括:
存储器,被配置为存储数据及指令;
与存储器建立通信的处理器;
其中,当执行存储器中的指令时,所述处理器被配置为执行如权利要求1至11任一项所述的方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910469238.1A CN110247963A (zh) | 2019-05-31 | 2019-05-31 | 一种数据推送方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910469238.1A CN110247963A (zh) | 2019-05-31 | 2019-05-31 | 一种数据推送方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110247963A true CN110247963A (zh) | 2019-09-17 |
Family
ID=67885693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910469238.1A Pending CN110247963A (zh) | 2019-05-31 | 2019-05-31 | 一种数据推送方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110247963A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395446A (zh) * | 2020-11-20 | 2021-02-23 | 杭州贝嘟科技有限公司 | 图片获取方法、装置、计算机设备和存储介质 |
CN113609178A (zh) * | 2021-08-12 | 2021-11-05 | 深圳壹账通智能科技有限公司 | 数据推送方法、装置、设备以及存储介质 |
CN115052040A (zh) * | 2022-04-26 | 2022-09-13 | 浪潮通信技术有限公司 | Feed流实现方法、系统、电子设备和存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6119167A (en) * | 1997-07-11 | 2000-09-12 | Phone.Com, Inc. | Pushing and pulling data in networks |
CN102523177A (zh) * | 2011-12-19 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种消息推送服务的实现方法与系统 |
CN103428076A (zh) * | 2013-08-22 | 2013-12-04 | 北京奇虎科技有限公司 | 向多类型终端或应用发送信息的方法和装置 |
CN103631727A (zh) * | 2012-08-27 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 用于缓存服务器的缓存管理方法及缓存管理系统 |
US20140136595A1 (en) * | 2009-08-17 | 2014-05-15 | Yahoo! Inc. | Push pull caching for social network information |
US20150085654A1 (en) * | 2012-06-05 | 2015-03-26 | Huawei Technologies Co., Ltd. | Caching system, apparatus, and method applied to network |
US20150215415A1 (en) * | 2012-10-09 | 2015-07-30 | Huawei Technologies Co., Ltd. | Data pushing method, apparatus, and system |
CN107749861A (zh) * | 2017-11-16 | 2018-03-02 | 平安科技(深圳)有限公司 | 信息推送方法、装置、终端设备及存储介质 |
CN108388479A (zh) * | 2018-02-10 | 2018-08-10 | 深圳壹账通智能科技有限公司 | 延迟消息推送方法、装置、计算机设备及存储介质 |
CN108449256A (zh) * | 2018-02-10 | 2018-08-24 | 深圳壹账通智能科技有限公司 | 消息推送的处理方法、装置、计算机设备及存储介质 |
WO2018153271A1 (zh) * | 2017-02-27 | 2018-08-30 | 腾讯科技(深圳)有限公司 | 数据的推送方法、装置、存储介质及电子装置 |
CN108959443A (zh) * | 2018-06-13 | 2018-12-07 | 沈文策 | 一种信息推送方法、信息处理方法及装置 |
CN109040300A (zh) * | 2018-09-04 | 2018-12-18 | 航天信息股份有限公司 | 推送消息的方法、装置和存储介质 |
CN109257434A (zh) * | 2018-10-19 | 2019-01-22 | 成都品果科技有限公司 | 一种实时消息推送方法及系统 |
CN111385330A (zh) * | 2018-12-29 | 2020-07-07 | 广州市百果园信息技术有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
-
2019
- 2019-05-31 CN CN201910469238.1A patent/CN110247963A/zh active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6119167A (en) * | 1997-07-11 | 2000-09-12 | Phone.Com, Inc. | Pushing and pulling data in networks |
US20140136595A1 (en) * | 2009-08-17 | 2014-05-15 | Yahoo! Inc. | Push pull caching for social network information |
CN102523177A (zh) * | 2011-12-19 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种消息推送服务的实现方法与系统 |
US20150085654A1 (en) * | 2012-06-05 | 2015-03-26 | Huawei Technologies Co., Ltd. | Caching system, apparatus, and method applied to network |
CN103631727A (zh) * | 2012-08-27 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 用于缓存服务器的缓存管理方法及缓存管理系统 |
US20150215415A1 (en) * | 2012-10-09 | 2015-07-30 | Huawei Technologies Co., Ltd. | Data pushing method, apparatus, and system |
CN103428076A (zh) * | 2013-08-22 | 2013-12-04 | 北京奇虎科技有限公司 | 向多类型终端或应用发送信息的方法和装置 |
WO2018153271A1 (zh) * | 2017-02-27 | 2018-08-30 | 腾讯科技(深圳)有限公司 | 数据的推送方法、装置、存储介质及电子装置 |
CN108512876A (zh) * | 2017-02-27 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 数据的推送方法及装置 |
CN107749861A (zh) * | 2017-11-16 | 2018-03-02 | 平安科技(深圳)有限公司 | 信息推送方法、装置、终端设备及存储介质 |
CN108388479A (zh) * | 2018-02-10 | 2018-08-10 | 深圳壹账通智能科技有限公司 | 延迟消息推送方法、装置、计算机设备及存储介质 |
CN108449256A (zh) * | 2018-02-10 | 2018-08-24 | 深圳壹账通智能科技有限公司 | 消息推送的处理方法、装置、计算机设备及存储介质 |
CN108959443A (zh) * | 2018-06-13 | 2018-12-07 | 沈文策 | 一种信息推送方法、信息处理方法及装置 |
CN109040300A (zh) * | 2018-09-04 | 2018-12-18 | 航天信息股份有限公司 | 推送消息的方法、装置和存储介质 |
CN109257434A (zh) * | 2018-10-19 | 2019-01-22 | 成都品果科技有限公司 | 一种实时消息推送方法及系统 |
CN111385330A (zh) * | 2018-12-29 | 2020-07-07 | 广州市百果园信息技术有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
罗熹等: "内容中心网络中基于缓存压力的选择性缓存机制", 《湖南大学学报(自然科学版)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395446A (zh) * | 2020-11-20 | 2021-02-23 | 杭州贝嘟科技有限公司 | 图片获取方法、装置、计算机设备和存储介质 |
CN113609178A (zh) * | 2021-08-12 | 2021-11-05 | 深圳壹账通智能科技有限公司 | 数据推送方法、装置、设备以及存储介质 |
CN115052040A (zh) * | 2022-04-26 | 2022-09-13 | 浪潮通信技术有限公司 | Feed流实现方法、系统、电子设备和存储介质 |
CN115052040B (zh) * | 2022-04-26 | 2024-04-19 | 浪潮通信技术有限公司 | Feed流实现方法、系统、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8577960B2 (en) | Providing status information for components in a distributed landscape | |
CN110247963A (zh) | 一种数据推送方法及系统 | |
WO2013081847A1 (en) | Dynamic browser icons | |
CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
US10901819B1 (en) | Distributed queueing over a Redis cluster | |
CN109951538A (zh) | 数据处理方法、装置、系统、电子设备及存储介质 | |
CN103442024A (zh) | 一种智能移动终端与云端虚拟移动终端同步的系统和方法 | |
CN111694857B (zh) | 存储资源数据的方法、装置、电子设备及计算机可读介质 | |
CN103699635B (zh) | 信息处理方法和装置 | |
CN110658961A (zh) | 信息显示方法、装置和电子设备 | |
CN110536149A (zh) | 消息显示方法、装置、可读介质及电子设备 | |
CN104346426B (zh) | 共享数据去重复的方法和系统 | |
CN115297183B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN109491670A (zh) | 一种页面显示方法及终端设备 | |
CN103677519A (zh) | 一种收藏多媒体资源的方法、终端及服务器 | |
EP3506599A1 (en) | Method for synchronizing contact information, apparatus, medium, electronic device and system | |
CN111694629A (zh) | 信息展示方法、装置和电子设备 | |
CN111258800A (zh) | 一种页面处理方法、装置和电子设备 | |
CN111008061A (zh) | 一种动画展示方法及相关设备 | |
CN109218793A (zh) | 视频加载方法、装置、电子设备及计算机可读存储介质 | |
CN103309677A (zh) | 内置资源管理方法、装置及终端 | |
US9935939B1 (en) | Keyboard login manager | |
AU2012327879A1 (en) | Data interchange system | |
CN110502169A (zh) | 一种显示控制方法及终端 | |
EP3163475B1 (en) | Electronic device and method of searching data records |
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 | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20220923 |