CN105847446B - 一种网络数据的获取方法、装置和*** - Google Patents
一种网络数据的获取方法、装置和*** Download PDFInfo
- Publication number
- CN105847446B CN105847446B CN201610380227.2A CN201610380227A CN105847446B CN 105847446 B CN105847446 B CN 105847446B CN 201610380227 A CN201610380227 A CN 201610380227A CN 105847446 B CN105847446 B CN 105847446B
- Authority
- CN
- China
- Prior art keywords
- plug
- function
- network data
- configuration file
- dynamic library
- 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.)
- Active
Links
Images
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/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种网络数据的获取方法、装置和***;本发明实施例采用定时获取配置文件,根据该配置文件加载相应的动态库文件,以及调用相应的插件函数,并从该配置文件中获取与该插件函数相关的参数,然后,根据这些参数执行该插件函数,以获取网络数据;该方案不仅实现和更新较为简单,易于进行功能扩展,而且可以减少资源的消耗。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种浏览器页面数据过滤方法、装置和***。
背景技术
随着互联网技术的发展,越来越多的人选择通过网络来获取自己所需的各种信息,包括一些电子读物,比如电子书、电子期刊或电子报,等等。所谓电子读物,是指将文字、图片、声音、和影像等讯息内容数字化的出版物或非出版物。与此同时,为了方便用户获取电子读物,现有技术也相应地涌出了一批与阅读相关的终端应用,简称阅读应用。
用户通过阅读应用获取的数据,一般可以分为用户相关数据、以及用户无关数据,所谓用户相关数据,指的是用户的个性化数据,比如,用户的VIP(贵宾,very importantpeople)等级、用户所订阅的服务内容、用户的书签、以及用户的收藏夹等,而用户无关数据,指的是所有用户可以公用的数据,比如某些阅读界面的配置信息、页面上的插图、以及电子读物的具体内容等。在现有技术中,一般的,阅读应用所属的服务端都会采用定时的守护进程(daemon)拉取的方式来批量获取用户无关数据,并对该用户无关数据进行加工,然后存储在本地,这样,每次用户访问时,服务端只需要调用用户相关的接口,以获取相应的用户相关数据即可,而对于用户无关数据,便可以从本地获取,从而避免了在实时的请求中调用过多的外部接口,减少了请求的耗时、以及对外部接口的依赖。
在对现有技术的研究和实践过程中,本发明的发明人发现,由于各个模块的差异性,在现有方案中,需要为每个模块都独立编写相应的守护进程,如果有新的模块加入或对功能进行更新,还需要重新进行编程和整合,即现有方案采用的是硬编码的方式,实现和更新均较为复杂,不易进行功能拓展,而且浪费资源。
发明内容
本发明实施例提供一种网络数据的获取方法、装置和***,不仅实现和更新较为简单,易于进行功能扩展,而且可以减少资源的消耗。
本发明实施例提供一种网络数据的获取方法,包括:
定时获取配置文件;
根据所述配置文件加载相应的动态库文件,以及调用相应的插件函数;
从所述配置文件中获取与所述插件函数相关的参数;
根据所述参数执行所述插件函数,以获取网络数据。
相应的,本发明实施例还提供一种网络数据的获取装置,包括:
文件获取单元,用于定时获取配置文件;
调用单元,用于根据所述配置文件加载相应的动态库文件,以及调用相应的插件函数;
参数获取单元,用于从所述配置文件中获取与所述插件函数相关的参数;
执行单元,用于根据所述参数执行所述插件函数,以获取网络数据。
此外,本发明实施例还提供一种网络数据的获取***,包括本发明实施例提供的任一种网络数据的获取装置。
本发明实施例采用定时获取配置文件,根据该配置文件加载相应的动态库文件,以及调用相应的插件函数,并从该配置文件中获取与该插件函数相关的参数,然后,根据这些参数执行该插件函数,以获取网络数据;由于该方案可以将在获取网络数据过程中的一些逻辑处理操作以动态库文件和插件函数的方式来体现,因此,对于不同模块共有的一些基础逻辑功能,如用户无关数据的获取等,只需共享同一动态库文件和插件函数即可,而无需为每个模块均单独编写一套相应的完整代码,不仅实现更为简单,而且也便于进行更新和功能扩展,比如,在进行功能拓展时,只需专注于该拓展功能的逻辑开发,而无需关注其基础逻辑功能,等等,大大提高了其灵活性;进一步的,由于可以将实现相同功能的代码进行共享,所以,可以减少大量重复的代码,减少资源的消耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的网络数据的获取方法的场景示意图;
图1b是本发明实施例提供的网络数据的获取方法的流程图;
图2是本发明实施例提供的网络数据的获取方法的另一流程图;
图3a是本发明实施例提供的网络数据的获取装置的结构示意图;
图3b是本发明实施例提供的网络数据的获取装置的另一结构示意图;
图4是本发明实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种网络数据的获取方法、装置和***。
其中,该网络数据的获取***可以包括本发明实施例所提供的任一种网络数据的获取装置,该网络数据的获取装置具体可以集成在服务器中,此外,该网络数据的获取***还可以包括其他的设备,比如终端,该终端主要用于接收服务器发送的网络数据。
例如,参见图1a,该服务器可以定时获取配置文件,根据该配置文件加载相应的动态库文件,比如so文件,以及调用相应的插件函数,并从该配置文件中获取与该插件函数相关的参数,然后,根据这些参数执行该插件函数,以获取网络数据;比如,可以将这些参数按照顺序添加至参数列表中,然后,将该参数列表中的参数依次输入至所述插件函数中,执行输入了参数的插件函数,以调用相应的外部接口,并通过该外部接口从服务器拉取原始网络数据,对原始网络数据进行数据加工,得到网络数据,等等;此后,当终端需要获取该网络数据,比如,当服务器接收到终端发送的数据获取请求时,并可以将得到的网络数据提供给终端。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
实施例一、
本实施例将从网络数据的获取装置的角度进行描述,该网络数据的获取装置具体可以集成在服务器,比如应用服务器中。
一种网络数据的获取方法,包括:定时获取配置文件;根据该配置文件加载相应的动态库文件,以及调用相应的插件函数;从该配置文件中获取与该插件函数相关的参数;根据该参数执行该插件函数,以获取网络数据。
如图1b所示,该网络数据的获取方法的具体流程可以如下:
101、定时获取配置文件。
例如,具体可以设置一获取周期,然后按照该周期定时获取配置文件。其中,该周期可以根据实际应用的需求进行设置,比如,可以设置每30秒获取一次,或每隔20秒获取一次,等等。
其中,该配置文件的格式可以根据实际应用的需求而定,比如,可以是html或xml等格式,等等。为了描述方便,在本发明实施例中,均以该配置文件具体为xml格式为例进行说明。
其中,在获取配置文件时,可以从其他设备,比如管理服务器或存储服务器中来获取该配置文件,也可以预先将该配置文件加载在本地,从本地获取该配置文件,即在步骤“定时获取配置文件”之前,该网络数据的获取方法还可以包括:
确定当前运行环境符合预设条件时,加载配置文件。
其中,当前运行环境可以包括运行时间信息、和/或各软硬件的状态信息等,而该预设条件则可以根据实际应用的需求进行设置,比如,可以设置每隔一定的周期,便加载一次该配置文件;又比如,还可以设置当某进程处于某个状态时,则加载该配置文件,等等,在此不再赘述。
可选的,为了节省信令流程,提供处理效率,在加载配置文件时,还可以判断该配置文件是否发生了变化,若发生了变化,才重新进行加载,而如果没有发送变化,则可以沿用上一次加载的配置文件。
其中,判断该配置文件是否发生了变化的方式可以有多种,除了可以直接将当前配置文件与上一次加载的配置文件进行比较之外,还可以通过配置文件的修改时间来进行判断,即在步骤“加载配置文件”之后,该网络数据的获取方法还可以包括:
确定配置文件的最后修改时间与上一次加载时的修改时间不一致时,重新加载该配置文件。
否则,若确定配置文件的最后修改时间与上一次加载时的修改时间一致,则表明已加载的配置文件并没有发生变化,该已加载的配置文件为当前最新的版本,可以继续使用。
例如,具体可以通过读取配置文件的文件状态信息,比如stat(文件状态)信息,来确定该配置文件当前的最后修改时间和上一次加载时的修改时间是否一致,等等。
102、根据该配置文件加载相应的动态库文件,以及调用相应的插件函数;例如,具体可以如下:
读取该配置文件中的守护进程(比如daemon)任务,以确定当前需要执行的守护进程任务,根据该当前需要执行的守护进程任务加载相应的动态库文件,以及调用相应的插件函数。
比如,可以从该当前需要执行的守护进程任务中获取相应的动态库文件的标识和插件函数的标识,根据该动态库文件的标识调用相应的动态库文件,并加载该动态库文件,比如so文件,然后,根据该插件函数的标识从该动态库文件中调用相应插件函数,等等。
其中,守护进程是一种在运行在后台的特殊的进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。
其中,动态库文件的标识可以包括动态库文件的名称或编号等可以识别出该动态库文件的信息;而插件函数的标识则可以包括插件函数的名称或编号等可以识别出该插件函数的信息。
例如,以动态库文件的标识具体为动态库文件的名称,插件函数的标识具体为插件函数的名称为例,若配置文件的内容如下:
其中,handler节点表示的是一个插件函数,在上述配置文件的例子中具体指的是libdaemon.so库(即一个动态库文件)里的GetColumnBook函数(即一个插件函数)。而task节点表示的是一条需要执行的守护进程(daemon)任务。
则,当该网络数据的获取装置读取到这条task记录后,便会找到名为“getcolumnbook”的handler,然后,根据其中的信息加载相应的动态库文件,即加载"libdaemon.so",以及调用相应的插件函数,即调用"GetColumnBook。
需说明的,由于守护进程执行次数较少,无法通过模调上报来监控执行情况,因此,一旦进程死掉或者访问外部接口失败,则容易因为无法及时处理而导致外网数据的时效性问题,所以,为了避免由于无法及时发现进程死掉或者访问外部接口失败而导致的外网数据的时效性问题,可选的,可以在每次触发守护进程的逻辑处理入口(比如在获取配置文件之前)时,都进行一次特性信息的检测,其中,该特性信息的检测类似于一个心跳机制,用于检查守护进程如daemon进程的存活情况,基于该特性信息可以判断该守护进程是否发生异常,若异常,则可以发出告警,以便通知相关人员进行及时处理。即,可选的,该网络数据的获取方法还可以包括:
获取守护进程的逻辑处理入口的特性信息,根据该特性信息确定所述守护进程发生异常时,生成告警信息。
其中,该特性信息的格式具体可以根据实际应用的需求而定,比如,可以采用数值型的特性来表示(即通过数值的高低来表示该特性信息),与此同时,可以在服务器(比如网管***)里设置同比下降的告警策略,如果出现数值下降,则表示守护进程的运行情况发生异常,比如进程死掉或者访问外部接口失败,等等,需要发出告警信息,则此时,可以向预设的终端发出告警信息。
其中,告警信息发送渠道可以包括邮件、短信、和/或社交平台或即时通信平台的消息等。
103、从该配置文件中获取与该插件函数相关的参数。
其中,与该插件函数相关的参数可以包括数据存储相关的参数、用于区分该任务是否为关键任务的参数、以及指示消息类型的参数等。例如,以如下插件函数为例:
则与该插件函数相关的参数可以包括appid、netid、critical、errmsg、以及va_list等,其中,appid和netid是数据存储相关的参数;critical参数用于区分该任务是否是关键任务;errmsg是返回消息,如果函数返回值为非0,则该返回信息会以字符串型特性信息进行上报;而以C语言的变参宏方式进行表示的参数va_list,则是为了处理不同业务场景下,插件函数需要的参数类型和参数个数不同的问题而进行设置的。
104、根据该参数执行该插件函数,以获取网络数据。
例如,具体可以将该参数按照顺序添加至参数列表中,然后,根据该参数列表执行该插件函数,以获取网络数据。
其中,根据该参数列表执行该插件函数,以获取网络数据的方式可以有多种,比如,可以如下:
将该参数列表中的参数依次输入至该插件函数中,执行输入了参数的插件函数,以获取网络数据。
例如,以步骤102中示例的配置文件为例,则除了“type”参数(“type”是从task节点的属性中获取的),其他参数可以按照出现的顺序依次传入插件函数中,即可以依次传入“1”、“2477”、以及“20”。其中,参数的类型可以预先进行规定,比如,可以统一为char*类型,等等。
其中,将该参数列表中的参数依次输入至该插件函数,即函数参数栈压栈操作的关键代码(32位机器)具体可以如下:
在将参数输入插件函数之后,便可以利用输入了参数的插件函数调用相应的外部接口,然后,通过该外部接口拉取原始网络数据,并对该原始网络数据进行数据加工,得到网络数据。
可选的,为了避免由于无法及时发现进程异常而导致的外网数据的时效性问题,在数据加工失败时,还可以进行告警,即在步骤“对该原始网络数据进行数据加工,得到网络数据”之后,该网络数据的获取方法还可以包括:
若数据加工失败,则生成第一失败提示信息,比如生成字符串型的第一失败提示信息,并根据该第一失败提示信息进行告警。
比如,如果数据加工失败,则插件函数会返回一个指示错误的数值,比如返回一个非0的值(以0表示正确,非0表示错误为例),那么此时,便可以根据该数值判断出数据加工失败,于是生成第一失败提示信息,并根据该第一失败提示信息进行告警,等等。
可选的,在获取到网络数据之后,还可以将该网络数据写入预设存储空间,以进行存储,即在步骤“对该原始网络数据进行数据加工,得到网络数据”之后,该网络数据的获取方法还可以包括:
将该网络数据写入预设存储空间。
同理,为了避免由于无法及时发现进程异常而导致的外网数据的时效性问题,在写入失败时,也同样可以进行告警,即具体可以如下:
若写入失败,则生成第二失败提示信息,比如生成字符串型的第二失败提示信息,并根据该第二失败提示信息进行告警。
比如,如果写入失败,则插件函数会返回一个指示错误的数值,比如返回一个非0的值(以0表示正确,非0表示错误为例),那么此时,便可以根据该数值判断出写入失败,于是进行告警,等等。
其中,告警的方式可以有多种,比如可以进行文字、声音或图片等形式的提醒,等等。
需说明的是,在生成第一失败提示信息或第二失败提示信息时,还可以在第一失败提示信息或第二失败提示信息中携带相应的插件名称和/或函数名称,以便可以快速定位发送异常的位置。
由上可知,本实施例采用定时获取配置文件,根据该配置文件加载相应的动态库文件,以及调用相应的插件函数,并从该配置文件中获取与该插件函数相关的参数,然后,根据这些参数执行该插件函数,以获取网络数据;由于该方案可以将在获取网络数据过程中的一些逻辑处理操作以动态库文件和插件函数的方式来体现,因此,对于不同模块共有的一些基础逻辑功能,如用户无关数据的获取等,只需共享同一动态库文件和插件函数即可,而无需为每个模块均单独编写一套相应的完整代码,不仅实现更为简单,而且也便于进行更新和功能扩展,比如,在进行功能拓展时,只需专注于该拓展功能的逻辑开发,而无需关注其基础逻辑功能(现有的开发新的daemon都需要重新开发daemon的基础逻辑功能,工作量重复),等等,大大提高了其灵活性;进一步的,由于可以将实现相同功能的代码进行共享,所以,可以减少大量重复的代码,减少资源的消耗。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该网络数据具体为电子读物信息,且该网络数据的获取装置具体集成在服务器中为例进行说明。
如图2所示,一种网络数据的获取方法,具体流程可以如下:
201、服务器确定当前运行环境符合预设条件时,加载配置文件。
其中,当前运行环境可以包括运行时间信息、和/或各软硬件的状态信息等,而该预设条件则可以根据实际应用的需求进行设置。
可选的,为了节省信令流程,提供处理效率,在加载配置文件时,还可以判断该配置文件是否发生了变化,若发生了变化,才重新进行加载,而如果没有发送变化,则可以沿用上一次加载的配置文件,例如,可以如下:
服务器读取配置文件的文件状态信息,比如stat(文件状态)信息,根据该文件状态信息确定配置文件的最后修改时间与上一次加载时的修改时间是否一致,若一致,则可以继续使用上一次加载的配置文件,否则,若不一致,则重新加载该配置文件。
可选的,为了避免由于无法及时发现进程死掉或者访问外部接口失败而导致的外网数据的时效性问题,可以在每次触发守护进程的逻辑处理入口(比如在获取配置文件之前)时,都进行一次特性信息的检测,比如,具体可以获取守护进程的逻辑处理入口的特性信息,然后向该服务器中相应的检测模块上报该特性信息。
其中,该特性信息上报类似于一个心跳机制,用于检查守护进程(如daemon)的存活情况,然后,由服务器基于该特性信息来判断该守护进程是否发生异常,若异常,则可以发出告警,以便通知相关人员进行及时处理。
需说明的是,该特性信息的上报不影响配置文件的加载,即不管该守护进程是否发生异常,均可以执行步骤201。
202、服务器定时获取加载的配置文件。
例如,以该服务器包括免费书籍模块和排行榜模块,且此时需要获取免费书籍模块和排行榜模块的相关电子读物信息为例,则相应的配置文件可以设置为:
其中,handler节点表示的是插件函数,在上述配置文件的例子中具体指的是libfree.so库里的GetFreeBook函数,以及librank.so库里的GetRankBook函数。而task节点表示的是需要执行的守护进程(daemon)任务,即需要找到名为“getfreebook”和“getrankbook”的handler,并根据其中的信息加载相应的动态库文件和插件函数,即加载“libfree.so”库和“librank.so”库,以及调用“libfree.so”库里的“GetFreeBook”函数和“librank.so”库里的“GetRankBook”函数。
其中,“libfree.so”用于免费书籍模块,“librank.so”用于排行榜数据处理。
203、服务器读取该配置文件中的守护进程(比如daemon)任务,以确定当前需要执行的守护进程任务。
例如,以步骤202中所示例的配置文件为例,则此时,可以确定当前需要执行的守护进程任务为:
由上述代码可知,该当前需要执行的守护进程任务指示需要找到名称为“getfreebook”的handler,并根据其中的信息加载相应的动态库文件和插件函数,即需要执行“libfree.so”里的函数“GetFreeBook”,其中,该函数是用于拉取加工免费模块所需要的电子读物信息。
又例如,若当前需要执行的守护进程任务为:
则由上述代码可知,该当前需要执行的守护进程任务指示需要找到名称为“getrankbook”的handler,并根据其中的信息加载相应的动态库文件和插件函数,即需要执行“librank.so”里的函数“GetRankBook”,其中,该函数是用于拉取指定排行榜的电子读物信息并保存。
204、服务器根据该当前需要执行的守护进程任务加载相应的动态库文件,以及调用相应的插件函数。
例如,若在步骤203中,该当前需要执行的守护进程任务指示需要找到名称为“getfreebook”的handler,则此时,可以根据该handler中的信息加载相应的动态库文件“libfree.so”,从动态库文件“libfree.so”中找到名为“GetFreeBook”的插件函数。
又例如,若在步骤203中,该当前需要执行的守护进程任务指示需要找到名称为“getrankbook”的handler,则此时,可以根据该handler中的信息加载相应的动态库文件“librank.so”,从动态库文件“librank.so”中找到名为“GetRankBook”的插件函数。
205、服务器从该配置文件中获取与该插件函数相关的参数,并将该参数按照顺序添加至参数列表中。
例如,若在步骤204中,调用的插件函数为GetFreeBook,则在执行插件函数“GetFreeBook”时,可以将该当前需要执行的守护进程任务“<task type="getfreebook"critical="true"plat="1"columnid="2477"booknum="20"/>”中的各个参数,比如“critical”、“plat”、“columned”、以及“booknum”等这几个值作为参数按照顺序添加至插件函数“GetFreeBook”所对应的参数列表中。
其中,参数“columned”是免费书籍(即免费的电子读物)栏目的编号,而参数“booknum”则表示需要拉取的电子读物数量,比如,booknum="20",表示需要拉取的电子读物数量为20本,等等。
又例如,若在步骤204中,调用的插件函数为“GetRankBook”,则在执行插件函数“GetRankBook”时,可以将该当前需要执行的守护进程任务“<task type="getrankbook"critical="true"plat="1"rankid="2478"booknum="100"/>”中的各个参数,比如“critical”、“plat”、“rankid”、以及“booknum”等这几个值作为参数按照顺序添加至函数“getrankbook”所对应的参数列表中。
其中,参数“rankid”表示的排行榜的编号,而“booknum”则表示需要拉取前多少名的电子读物,比如,booknum="100",表示需要拉取排行为前100名的电子读物信息,等等。
206、服务器将该参数列表中的参数依次输入至该插件函数中并执行,以获取电子读物信息,然后返回执行步骤203。
例如,以当前需要执行的守护进程任务为“<task type="getfreebook"critical="true"plat="1"columnid="2477"booknum="20"/>”为例,则此时,可以依次传入“1”、“2477”、以及“20”至插件函数“GetFreeBook”中并执行,比如,可以利用输入了参数的插件函数调用相应的外部接口,然后,通过该外部接口拉取原始电子读物信息,并对该原始电子读物信息进行数据加工,得到电子读物信息。
又例如,以当前需要执行的守护进程任务为“<task type="getrankbook"critical="true"plat="1"rankid="2478"booknum="100"/>”为例,则此时,可以依次传入“1”、“2478”、以及“100”至插件函数“getrankbook”中并执行,比如,可以利用输入了参数的插件函数调用相应的外部接口,然后,通过该外部接口拉取原始电子读物信息,并对该原始电子读物信息进行数据加工,得到电子读物信息,等等。
可选的,为了避免由于无法及时发现进程异常而导致的外网数据的时效性问题,在数据加工失败时,还可以进行告警,即在步骤“对该原始电子读物信息进行数据加工,得到电子读物信息”之后,该网络数据的获取方法还可以包括:
若数据加工失败,则生成字符串型的第一失败提示信息,根据该第一失败提示信息进行告警。
比如,如果数据加工失败,则插件函数会返回一个指示错误的数值,比如返回一个非0的值(以0表示正确,非0表示错误为例),那么,此时,服务器便可以根据该数值判断出数据加工失败,于是进行告警,等等。
可选的,在获取到电子读物信息之后,还可以将该电子读物信息写入预设存储空间,以进行存储;同理,在写入失败时,也同样可以进行告警,即在步骤“对该原始电子读物信息进行数据加工,得到电子读物信息”之后,该网络数据的获取方法还可以包括:
将该电子读物信息写入预设存储空间,若写入失败,则生成字符串型的第二失败提示信息,并根据该第二失败提示信息进行告警。
比如,如果写入失败,则插件函数会返回一个指示错误的数值,比如返回一个非0的值(以0表示正确,非0表示错误为例),那么,此时,服务器便可以根据该数值判断出写入失败,于是进行告警,等等。
需说明的是,在返回第一失败提示信息或第二失败提示信息时,还可以第一失败提示信息或第二失败提示信息中携带相应的插件名称和/或函数名称,以便可以快速定位发送异常的位置。
此外,还需说明的是,不管第一个守护进程任务的插件函数的执行情况如何,都需要继续执行下一个守护进程任务,即不管第一个“task”的插件函数是否返回表示成功的返回值,都会继续下一个“task”的执行,即需要返回执行步骤203。
比如,若第一个守护进程任务为“<task type="getfreebook"critical="true"plat="1"columnid="2477"booknum="20"/>”,则此时,可以继续执行第二守护进程任务,即将“<task type="getrankbook"critical="true"plat="1"rankid="2478"booknum="100"/>”作为当前需要执行的守护进程任务,详见步骤203。
需说明的是,在执行完所有的守护进程任务(即task)后,该服务器会休眠等待指定的时间,然后重新执行步骤201,如此循环反复,比如,在本实施例中是2个task,因此,在执行完这两个task后,该服务器可以休眠等待指定的时间,然后再重新执行步骤201,以便执行其他的task,依次类推。
还需说明的是,为了提高处理效率,可选的,还可以开启多线程处理模式,以提高并行处理的能力,即可以采用多个线程,并行处理多个守护进程任务,其中,每个守护进程任务的执行与上述流程类似,在此不再赘述。
由上可知,本实施例采用定时获取配置文件,根据该配置文件加载相应的动态库文件,以及调用相应的插件函数,并从该配置文件中获取与该插件函数相关的参数,然后,将这些参数按顺序依次传入该插件函数并执行,以获取电子读物信息;由于该方案可以将在获取电子读物信息过程中的一些逻辑处理操作以动态库文件和插件函数的方式来体现,因此,对于不同模块共有的一些基础逻辑功能,如用户无关数据的获取等,只需共享同一动态库文件和插件函数即可,而无需为每个模块均单独编写一套相应的完整代码,不仅实现更为简单,而且也便于进行更新和功能扩展,比如,在进行功能拓展时,只需专注于该拓展功能的逻辑开发,而无需关注其基础逻辑功能,等等,大大提高了其灵活性;进一步的,由于可以将实现相同功能的代码进行共享,所以,可以减少大量重复的代码,减少资源的消耗。
进一步的,由于可以定时获取守护进程的逻辑处理入口的特性信息,并上报给服务器,以及在发现其他处理异常,比如数据加工失败或写入数据失败时,进行告警,因此,可以避免由于无法及时发现进程死掉或者访问外部接口失败而导致的外网数据的时效性问题,大大改善数据处理的效果。
实施例三、
为了更好地实施以上方法,本发明实施例还提供一种网络数据的获取装置,如图3a所示,该网络数据的获取装置包括文件获取单元301、调用单元、参数获取单元303和执行单元304,如下:
(1)文件获取单元301;
文件获取单元301,用于定时获取配置文件。
例如,具体可以设置一获取周期,然后按照该周期定时获取配置文件。其中,该周期可以根据实际应用的需求进行设置。
其中,该配置文件的格式可以根据实际应用的需求而定,比如,可以采用xml格式。
其中,在获取配置文件时,可以从其他设备中来获取该配置文件,也可以预先将该配置文件加载在本地,从本地获取该配置文件,即如图3b所示,该网络数据的获取装置还可以包括加载单元305,如下:
该加载单元305,可以用于确定当前运行环境符合预设条件时,加载配置文件。
其中,当前运行环境可以包括运行时间信息、和/或各软硬件的状态信息等,而该预设条件则可以根据实际应用的需求进行设置,比如,可以设置每隔一定的周期,便加载一次该配置文件;又比如,还可以设置当某进程处于某个状态时,则加载该配置文件,等等,在此不再赘述。
可选的,为了节省信令流程,提供处理效率,在加载配置文件时,还可以判断该配置文件是否发生了变化,若发生了变化,才重新进行加载,而如果没有发送变化,则可以沿用上一次加载的配置文件。
其中,判断该配置文件是否发生了变化的方式可以有多种,除了可以直接将当前配置文件与上一次加载的配置文件进行比较之外,还可以通过配置文件的修改时间来进行判断,即:
该加载单元305,还可以用于在加载了配置文件之后,若确定配置文件的最后修改时间与上一次加载时的修改时间不一致时,则重新加载该配置文件。
否则,若确定配置文件的最后修改时间与上一次加载时的修改时间一致,则表明已加载的配置文件并没有发生变化,该已加载的配置文件为当前最新的版本,可以继续使用。
(2)调用单元302;
调用单元302,用于根据该配置文件加载相应的动态库文件,以及调用相应的插件函数;
例如,该调用单元302可以包括确定子单元和调用子单元,如下:
确定子单元,用于读取该配置文件中的守护进程任务,以确定当前需要执行的守护进程任务。
调用子单元,用于根据该当前需要执行的守护进程任务加载相应的动态库文件,以及调用相应的插件函数。
比如,该调用子单元,具体可以用于从该当前需要执行的守护进程任务中获取相应的动态库文件的标识和插件函数的标识,根据该动态库文件的标识调用相应的动态库文件,并加载该动态库文件,比如so文件,然后,根据该插件函数的标识从该动态库文件中调用相应插件函数,等等。
其中,动态库文件的标识可以包括动态库文件的名称或编号等可以识别出该动态库文件的信息;而插件函数的标识则可以包括插件函数的名称或编号等可以识别出该插件函数的信息。
(3)参数获取单元303;
参数获取单元303,用于从该配置文件中获取与该插件函数相关的参数。
其中,与该插件函数相关的参数可以包括数据存储相关的参数、用于区分该任务是否为关键任务的参数、以及指示消息类型的参数等。
(4)执行单元304;
执行单元304,用于根据该参数执行该插件函数,以获取网络数据。
例如,该执行单元304可以包括添加子单元和执行子单元,如下:
添加子单元,用于将该参数按照顺序添加至参数列表中;
执行子单元,用于根据该参数列表执行该插件函数,以获取网络数据。
比如,执行子单元,具体可以用于将该参数列表中的参数依次输入至该插件函数中,执行输入了参数的插件函数,以获取网络数据。
在将参数输入插件函数之后,该执行子单元便可以利用输入了参数的插件函数调用相应的外部接口,然后,通过该外部接口拉取原始网络数据,并对该原始网络数据进行数据加工,得到网络数据。
可选的,为了避免由于无法及时发现进程异常而导致的外网数据的时效性问题,在数据加工失败时,还可以进行告警,即:
执行子单元,还可以用于在数据加工失败时,生成第一失败提示信息,根据该第一失败提示信息进行告警。
可选的,在获取到网络数据之后,还可以将该网络数据写入预设存储空间,以进行存储,即执行单元304还可以包括存储子单元,如下:
该存储子单元,用于将该网络数据写入预设存储空间,若写入失败,则生成第二失败提示信息,根据该第二失败提示信息进行告警。
需说明的是,在生成第一失败提示信息或第二失败提示信息时,还可以在第一失败提示信息或第二失败提示信息中携带相应的插件名称和/或函数名称,以便可以快速定位发送异常的位置。
可选的,为了避免由于无法及时发现进程死掉或者访问外部接口失败而导致的外网数据的时效性问题,可以在每次触发守护进程的逻辑处理入口(比如在获取配置文件之前)时,都进行一次特性信息的检测,即如图3b所示,该网络数据的获取装置还可以包括告警单元306,如下:
该告警单元306,可以用于获取守护进程的逻辑处理入口的特性信息,根据该特性信息确定该守护进程发生异常时,生成告警信息。
该告警单元306,还可以用于将该告警信息发送给预设的终端,比如相关维护人员所属的终端,等等。
其中,告警信息发送渠道可以包括邮件、短信、和/或社交平台或即时通信平台的消息等。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可以参见前面的方法实施例,在此不再赘述。
该网络数据的获取装置具体可以集成在服务器,比如应用服务器中。
由上可知,本实施例的网络数据的获取装置的文件获取单元301,可以定时获取配置文件,然后由调用单元302根据该配置文件加载相应的动态库文件,以及调用相应的插件函数,并由参数获取单元303从该配置文件中获取与该插件函数相关的参数,再然后,由执行单元304根据这些参数执行该插件函数,以获取网络数据;由于该方案可以将在获取网络数据过程中的一些逻辑处理操作以动态库文件和插件函数的方式来体现,因此,对于不同模块共有的一些基础逻辑功能,如用户无关数据的获取等,只需共享同一动态库文件和插件函数即可,而无需为每个模块均单独编写一套相应的完整代码,不仅实现更为简单,而且也便于进行更新和功能扩展,比如,在进行功能拓展时,只需专注于该拓展功能的逻辑开发,而无需关注其基础逻辑功能,等等,大大提高了其灵活性;进一步的,由于可以将实现相同功能的代码进行共享,所以,可以减少大量重复的代码,减少资源的消耗。
实施例四、
相应的,本发明实施例还提供一种网络数据的获取***,包括本发明实施例提供的任一种网络数据的获取装置,具体可参见实施例三,例如,可以如下:
网络数据的获取装置,用于根据该配置文件加载相应的动态库文件,以及调用相应的插件函数;从该配置文件中获取与该插件函数相关的参数;根据该参数执行该插件函数,以获取网络数据。
该网络数据的获取装置,还可以用于获取守护进程的逻辑处理入口的特性信息,根据该特性信息确定守护进程是否发生异常,若是,则生成告警信息;若否,则生成表示运行正常的响应消息,或者,也可以不生成响应消息。
此外,该网络数据的获取***还可以包括其他的设备,比如终端,如下:
终端,用于向网络数据的获取装置发送数据获取请求,并接收网络数据的获取装置根据该数据获取请求返回的网络数据。
以上各个设备的具体实施可参见前面的实施例,在此不再赘述。
由于该网络数据的获取***可以包括本发明实施例提供的任一种网络数据的获取装置,因此,可以实现本发明实施例所提供的任一种网络数据的获取装置所能实现的有益效果。
实施例五、
本发明实施例还提供一种服务器,如图4所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、射频(Radio Frequency,RF)电路403、电源404、输入单元405、以及显示单元406等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
RF电路403可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器401处理;另外,将涉及上行的数据发送给基站。通常,RF电路403包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路403还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
服务器还包括给各个部件供电的电源404(比如电池),优选的,电源404可以通过电源管理***与处理器401逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元405,该输入单元405可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元405可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元405还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
该服务器还可包括显示单元406,该显示单元406可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元406可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图4中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
尽管未示出,服务器还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
定时获取配置文件;根据该配置文件加载相应的动态库文件,以及调用相应的插件函数;从该配置文件中获取与该插件函数相关的参数;根据该参数执行该插件函数,以获取网络数据。
例如,该处理器401可以用于执行如下操作:
将该参数按照顺序添加至参数列表中,然后,根据该参数列表执行该插件函数,以获取网络数据;比如,可以将该参数列表中的参数依次输入至该插件函数中,利用输入了参数的插件函数调用相应的外部接口,然后,通过该外部接口拉取原始网络数据,并对该原始网络数据进行数据加工,得到网络数据,等等。
可选的,为了避免由于无法及时发现进程异常而导致的外网数据的时效性问题,在数据加工失败时,还可以进行告警,即该处理器401还可以用于执行如下操作:
若数据加工失败,则生成第一失败提示信息,并根据该第一失败提示信息进行告警。
可选的,在获取到网络数据之后,还可以将该网络数据写入预设存储空间,以进行存储,并在写入失败时,给予告警,即该处理器401还可以用于执行如下操作:
若写入失败,则生成第二失败提示信息,比如生成字符串型的第二失败提示信息,并根据该第二失败提示信息进行告警。
可选的,为了便于可以及时获知进程状况,该处理器401还可以用于执行如下操作:
获取守护进程的逻辑处理入口的特性信息,根据该特性信息确定所述守护进程发生异常时,生成告警信息。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的服务器可以获取配置文件,根据该配置文件加载相应的动态库文件,以及调用相应的插件函数,并从该配置文件中获取与该插件函数相关的参数,然后,根据这些参数执行该插件函数,以获取网络数据;由于该方案可以将在获取网络数据过程中的一些逻辑处理操作以动态库文件和插件函数的方式来体现,因此,对于不同模块共有的一些基础逻辑功能,如用户无关数据的获取等,只需共享同一动态库文件和插件函数即可,而无需为每个模块均单独编写一套相应的完整代码,不仅实现更为简单,而且也便于进行更新和功能扩展,比如,在进行功能拓展时,只需专注于该拓展功能的逻辑开发,而无需关注其基础逻辑功能,等等,大大提高了其灵活性;进一步的,由于可以将实现相同功能的代码进行共享,所以,可以减少大量重复的代码,减少资源的消耗。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种网络数据的获取方法、装置和***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (25)
1.一种网络数据的获取方法,其特征在于,包括:
定时获取配置文件;
根据所述配置文件加载相应的动态库文件,以及调用相应的插件函数;
从所述配置文件中获取与所述插件函数相关的参数;
根据所述参数执行所述插件函数,以获取网络数据;
其中,所述网络数据包括用户相关数据和用户无关数据,所述配置文件中仅不同模块对用户无关数据的获取共享同一动态库文件和插件函数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述配置文件加载相应的动态库文件,以及调用相应的插件函数包括:
读取所述配置文件中的守护进程任务,以确定当前需要执行的守护进程任务;
根据所述当前需要执行的守护进程任务加载相应的动态库文件,以及调用相应的插件函数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前需要执行的守护进程任务加载相应的动态库文件,以及调用相应的插件函数,包括:
从所述当前需要执行的守护进程任务中获取相应的动态库文件的标识和插件函数的标识;
根据所述动态库文件的标识调用相应的动态库文件,并加载所述动态库文件;
根据所述插件函数的标识从所述动态库文件中调用相应插件函数。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述参数执行所述插件函数,以获取网络数据,包括:
将所述参数按照顺序添加至参数列表中;
根据所述参数列表执行所述插件函数,以获取网络数据。
5.根据权利要求4所述的方法,其特征在于,所述根据所述参数列表执行所述插件函数,以获取网络数据,包括:
将所述参数列表中的参数依次输入至所述插件函数中;
执行输入了参数的插件函数,以获取网络数据。
6.根据权利要求5所述的方法,其特征在于,所述执行输入了参数的插件函数,以获取网络数据,包括:
利用输入了参数的插件函数调用相应的外部接口,并通过所述外部接口拉取原始网络数据;
对所述原始网络数据进行数据加工,得到网络数据。
7.根据权利要求6所述的方法,其特征在于,所述对所述原始网络数据进行数据加工,得到网络数据之后,还包括:
若数据加工失败,则生成第一失败提示信息,根据所述第一失败提示信息进行告警。
8.根据权利要求6所述的方法,其特征在于,所述对所述原始网络数据进行数据加工,得到网络数据之后,还包括:
将所述网络数据写入预设存储空间;
若写入失败,则生成第二失败提示信息,根据所述第二失败提示信息进行告警。
9.根据权利要求1至3任一项所述的方法,其特征在于,所述定时获取配置文件之前,还包括:
确定当前运行环境符合预设条件时,加载配置文件。
10.根据权利要求9所述的方法,其特征在于,所述加载配置文件之后,还包括:
确定配置文件的最后修改时间与上一次加载时的修改时间不一致时,重新加载所述配置文件。
11.根据权利要求2所述的方法,其特征在于,还包括:
获取守护进程的逻辑处理入口的特性信息;
根据所述特性信息确定所述守护进程发送异常时,生成告警信息。
12.一种网络数据的获取装置,其特征在于,包括:
文件获取单元,用于定时获取配置文件;
调用单元,用于根据所述配置文件加载相应的动态库文件,以及调用相应的插件函数;
参数获取单元,用于从所述配置文件中获取与所述插件函数相关的参数;
执行单元,用于根据所述参数执行所述插件函数,以获取网络数据;
其中,所述网络数据包括用户相关数据和用户无关数据,所述配置文件中仅不同模块对用户无关数据的获取共享同一动态库文件和插件函数。
13.根据权利要求12所述的装置,其特征在于,所述调用单元包括确定子单元和调用子单元;
所述确定子单元,用于读取所述配置文件中的守护进程任务,以确定当前需要执行的守护进程任务;
所述调用子单元,用于根据所述当前需要执行的守护进程任务加载相应的动态库文件,以及调用相应的插件函数。
14.根据权利要求13所述的装置,其特征在于,
所述调用子单元,具体用于从所述当前需要执行的守护进程任务中获取相应的动态库文件的标识和插件函数的标识;根据所述动态库文件的标识调用相应的动态库文件,并加载所述动态库文件;根据所述插件函数的标识从所述动态库文件中调用相应插件函数。
15.根据权利要求12至14任一项所述的装置,其特征在于,所述执行单元包括添加子单元和执行子单元;
所述添加子单元,用于将所述参数按照顺序添加至参数列表中;
所述执行子单元,用于根据所述参数列表执行所述插件函数,以获取网络数据。
16.根据权利要求15所述的装置,其特征在于,
所述执行子单元,具体用于将所述参数列表中的参数依次输入至所述插件函数中;执行输入了参数的插件函数,以获取网络数据。
17.根据权利要求16所述的装置,其特征在于,
所述执行子单元,具体用于利用输入了参数的插件函数调用相应的外部接口,并通过所述外部接口拉取原始网络数据;对所述原始网络数据进行数据加工,得到网络数据。
18.根据权利要求17所述的装置,其特征在于,
所述执行子单元,还用于在数据加工失败时,生成第一失败提示信息,根据所述第一失败提示信息进行告警。
19.根据权利要求17所述的装置,其特征在于,所述执行单元还包括存储子单元;
所述存储子单元,用于将所述网络数据写入预设存储空间,若写入失败,则生成第二失败提示信息,根据所述第二失败提示信息进行告警。
20.根据权利要求12至14任一项所述的装置,其特征在于,还包括加载单元;
所述加载单元,用于确定当前运行环境符合预设条件时,加载配置文件。
21.根据权利要求20所述的装置,其特征在于,
所述加载单元,还用于在加载了配置文件之后,若确定配置文件的最后修改时间与上一次加载时的修改时间不一致时,则重新加载所述配置文件。
22.根据权利要求13所述的装置,其特征在于,还包括告警单元;
所述告警单元,用于获取守护进程的逻辑处理入口的特性信息,根据所述特性信息确定所述守护进程发生异常时,生成告警信息。
23.一种网络数据的获取***,其特征在于,包括权利要求12至22所述的任一种网络数据的获取装置。
24.一种服务器,其特征在于,所述服务器包括存储器和处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
定时获取配置文件;
根据所述配置文件加载相应的动态库文件,以及调用相应的插件函数;
从所述配置文件中获取与所述插件函数相关的参数;
根据所述参数执行所述插件函数,以获取网络数据;
其中,所述网络数据包括用户相关数据和用户无关数据,所述配置文件中仅不同模块对用户无关数据的获取共享同一动态库文件和插件函数。
25.一种计算机可读存储介质,其存储有计算机程序,其中,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1所述的网络数据的获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610380227.2A CN105847446B (zh) | 2016-05-31 | 2016-05-31 | 一种网络数据的获取方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610380227.2A CN105847446B (zh) | 2016-05-31 | 2016-05-31 | 一种网络数据的获取方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105847446A CN105847446A (zh) | 2016-08-10 |
CN105847446B true CN105847446B (zh) | 2020-08-04 |
Family
ID=56595381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610380227.2A Active CN105847446B (zh) | 2016-05-31 | 2016-05-31 | 一种网络数据的获取方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105847446B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729197A (zh) * | 2017-10-12 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种异常检查方法及装置 |
CN110045998B (zh) * | 2019-04-22 | 2021-07-16 | 腾讯科技(深圳)有限公司 | 加载动态库的方法及装置 |
CN110457345B (zh) * | 2019-07-05 | 2023-11-03 | 平安证券股份有限公司 | 数据库读取方法、装置及计算机可读存储介质 |
CN111427548B (zh) * | 2020-03-18 | 2023-03-31 | 成都中科合迅科技有限公司 | 一种基于进程的插件式开发方法和*** |
CN113468023A (zh) * | 2021-07-09 | 2021-10-01 | 中国电信股份有限公司 | 监控方法、装置、介质及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101409643A (zh) * | 2008-11-24 | 2009-04-15 | 北京中创信测科技股份有限公司 | 电信网络模型化分析方法、装置和相应的*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6996832B2 (en) * | 2001-05-30 | 2006-02-07 | Bea Systems, Inc. | System and method for software component plug-in framework |
US7991427B2 (en) * | 2006-09-13 | 2011-08-02 | Mformation Technologies, Inc. | System and method to provide application management on wireless data terminals by means of device management agent and dynamic link libraries |
CN100492989C (zh) * | 2006-09-15 | 2009-05-27 | 华为技术有限公司 | 使用插件进行业务扩展的***及其方法 |
CN102073520A (zh) * | 2010-12-30 | 2011-05-25 | 中国民航信息网络股份有限公司 | 一种c++应用程序版本动态管理***和方法 |
CN103166787A (zh) * | 2011-12-15 | 2013-06-19 | ***通信集团浙江有限公司 | 信息分析方法及其设备 |
-
2016
- 2016-05-31 CN CN201610380227.2A patent/CN105847446B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101409643A (zh) * | 2008-11-24 | 2009-04-15 | 北京中创信测科技股份有限公司 | 电信网络模型化分析方法、装置和相应的*** |
Also Published As
Publication number | Publication date |
---|---|
CN105847446A (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108512695B (zh) | 监控应用卡顿的方法及装置 | |
KR102245025B1 (ko) | 메모리 반환 방법 및 장치 | |
CN105847446B (zh) | 一种网络数据的获取方法、装置和*** | |
KR101224721B1 (ko) | 컨텍스트-인식 플랫폼을 위한 시스템 및 방법 | |
CN112257135B (zh) | 一种基于多线程的模型加载方法、装置、存储介质及终端 | |
CN109976667B (zh) | 一种镜像管理方法、装置及*** | |
CN107741937B (zh) | 一种数据查询方法及装置 | |
US9448680B2 (en) | Power efficient application notification system | |
CN108039963B (zh) | 一种容器配置方法、装置及存储介质 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
CN110046497B (zh) | 一种函数挂钩实现方法、装置和存储介质 | |
CN112148579B (zh) | 一种用户界面的测试方法和装置 | |
WO2018086454A1 (zh) | 页面数据处理方法和装置 | |
EP4195623A1 (en) | Application interface migration system, method, and related device | |
EP4116820A1 (en) | Data recovery method and apparatus | |
KR102471739B1 (ko) | 전자 장치의 히스토리 정보 관리 장치 및 방법 | |
CN111966491B (zh) | 统计占用内存的方法及终端设备 | |
CN114237743B (zh) | 界面加载方法、装置、电子设备和存储介质 | |
CN108874653B (zh) | 任务测试方法、测试机、共享服务器和可读存储介质 | |
CN103309677B (zh) | 内置资源管理方法、装置及终端 | |
CN110309454B (zh) | 一种界面显示方法、装置、设备及存储介质 | |
CN112866422B (zh) | 一种数据请求处理方法和装置 | |
CN115501588A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN116627521A (zh) | 业务模块预加载方法、跳转方法、装置及存储介质 | |
CN114489892A (zh) | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |