本发明涉及数据采集控制技术领域,更具体地说,它涉及一种数据采集控制的方法及系统。
背景技术:
目前各种不同的用于存储业务和数据的平台被开发出来,中小型企业为了兼顾到不同平台的业务和数据,一般都是同时使用不同的平台维护自己的业务和数据。
现有技术中,中小型企业一般借助各平台维护自己的业务和数据,由于数据的分散使得中小型企业对自己的数据的维护成本增大,因此中小型企业采用信息采集的方式帮助企业降低运营的成本。
现有的信息采集系统的功能都只是对数据的采集和存储,手动配置采集的时间和采集任务的分布,给采集任务的分配带来繁琐的工作,要考虑自身服务器采集时的压力,也要考虑采集平台能够承受的压力。
现有的信息采集系统中,存在配置任务繁琐,人员无法同时监控所有在执行任务的状态,并且对任务的执行顺序不能做到实时的优化的问题。
技术实现要素:
针对上述问题,本发明的目的在于提供一种,其具有采集任务配置简单化,并且能实时监控所有任务的状态并实时做出优化方案的优点。
本发明的上述发明目的是通过以下技术方案得以实现的:
一种数据采集控制的方法,包括以下步骤:
s1:建立采集平台管理模块,在所述采集平台管理模块中创建初始任务,形成所述初始任务的初始任务列表;
s2:根据所述初始任务列表,为每一个所述初始任务建立运行服务器;
s3:建立采集进程控制模块,读取所述初始任务列表,并将所述初始任务列表存储到所述采集进程控制模块中,构成执行任务列表;
s4:建立采集进程优化模块,对所述执行任务列表进行优先级排序;
s5:根据s4中排序后的所述执行任务列表,顺序在所述执行任务对应的所述任务服务器中执行所述执行任务。
进一步的,在步骤s1中,还包括,建立任务基本信息库,所述任务基本信息库中存储任务的基本信息,包括任务唯一标识,任务上次耗时,任务最迟时间,任务自定权重,任务最终权重,任务对应平台,运行服务器编号在内的字段。
进一步的,在步骤s4中,还包括,获取所述执行任务的所述运行服务器上的任务状态,排除所述任务状态为执行完成的所述执行任务,对剩余所述执行任务进行优先级排序。
进一步的,还包括建立采集耗时统计模块,记录下执行所述执行任务的耗时,更新到所述任务上次耗时字段中。
进一步的,对所述执行任务列表进行优先级排序,具体过程为:
计算所述任务最终权重,计算公式为:
若当前时间距离所述任务最迟时间的剩余时间,不足所述任务上次耗时,
则finalweight=weight*100+timefly+1000;
否则finalweight=weight*100+timefly;
其中,timefly为所述任务上次耗时,weight为所述任务自定权重,finalweight为所述任务最终权重;
根据所述任务最终权重从大到小的顺序,对所述执行任务列表进行优先级排序。
针对本发明的数据采集控制的方法,本发明还提供了一种数据采集控制的系统,其特征在于,包括采集平台管理模块,采集进程控制模块,采集任务优化模块,运行服务器;
所述采集平台管理模块,用于创建初始任务,形成所述初始任务的初始任务列表;
所述采集进程控制模块,用于读取所述初始任务列表,并将所述初始任务列表存储到所述采集进程控制模块中,构成执行任务列表;
所述采集任务优化模块,用于对所述执行任务列表进行优先级排序;
所述运行服务器,用于执行数据采集任务。
进一步的,所述采集进程控制模块还包括任务基本信息库,用于存储任务的基本信息,包括任务唯一标识,任务上次耗时,任务最迟时间,任务自定权重,任务最终权重,任务对应平台,运行服务器编号在内的字段。
进一步的,还包括,采集耗时统计模块,用于记录执行所述执行任务的耗时,更新到所述任务上次耗时字段中。
进一步的,所述采集任务优化模块,还包括权重计算模块,用于计算所述任务最终权重,具体计算过程为:
若当前时间距离所述任务最迟时间的剩余时间,不足所述任务上次耗时,
则finalweight=weight*100+timefly+1000;
否则finalweight=weight*100+timefly;
其中,timefly为所述任务上次耗时,weight为所述任务自定权重,finalweight为所述任务最终权重;
根据所述任务最终权重从大到小的顺序,对所述执行任务列表进行优先级排序。
进一步的,还包括,存储数据库,用于存储所述运行服务器采集完的数据,用于存储所述运行服务器采集完的数据。
与现有技术相比,本发明的有益效果是:
通过建立一种数据采集控制的方法和对应的系统,解决了现有的信息采集系统中,配置任务繁琐,人员无法同时监控所有在执行的任务,并且对任务的执行顺序不能做到实时的优化的技术问题。
附图说明
图1为本发明一种数据采集控制的方法的流程图;
图2为本发明一种数据采集控制的系统的结构图;
图3为本发明一种数据采集控制的方法实际执行控制流程图;
具体实施方式
下面结合附图和实施例,对本发明进行详细描述。
实施例一
如图1所示,本实施例提供一种数据采集控制的方法,包括步骤:
s1:建立采集平台管理模块,在所述采集平台管理模块中创建初始任务,形成所述初始任务的初始任务列表;
在步骤s1中,还包括,建立任务基本信息库,所述任务基本信息库中存储任务的基本信息,包括任务唯一标识,任务上次耗时,任务最迟时间,任务自定权重,任务最终权重,任务对应平台,运行服务器编号在内的字段。
s2:根据所述初始任务列表,为每一个所述初始任务建立运行服务器;
s3:建立采集进程控制模块,读取所述初始任务列表,并将所述初始任务列表存储到所述采集进程控制模块中,构成执行任务列表;
s4:建立采集进程优化模块,对所述执行任务列表进行优先级排序;
在步骤s4中,还包括,获取所述执行任务的所述运行服务器上的任务状态,排除所述任务状态为执行完成的所述执行任务,对剩余所述执行任务进行优先级排序。
对所述执行任务列表进行优先级排序,具体过程为:
计算所述任务最终权重,计算公式为:
若当前时间距离所述任务最迟时间的剩余时间,不足所述任务上次耗时,
则finalweight=weight*100+timefly+1000;
否则finalweight=weight*100+timefly;
其中,timefly为所述任务上次耗时,weight为所述任务自定权重,finalweight为所述任务最终权重;
根据所述任务最终权重从大到小的顺序,对所述执行任务列表进行优先级排序。
s5:根据s4中排序后的所述执行任务列表,顺序在所述执行任务对应的所述任务服务器中执行所述执行任务。
本方法,还包括建立采集耗时统计模块,记录下执行所述执行任务的耗时,更新到所述任务上次耗时字段中。
实施例二
如图2针对实施例一的方法,提供一种数据采集控制的系统,具体包括采集平台管理模块,采集进程控制模块,采集任务优化模块,运行服务器;
所述采集平台管理模块,用于创建初始任务,形成所述初始任务的初始任务列表;
,所述采集进程控制模块还包括任务基本信息库,用于存储任务的基本信息,包括任务唯一标识,任务上次耗时,任务最迟时间,任务自定权重,任务最终权重,任务对应平台,运行服务器编号在内的字段。
所述采集进程控制模块,用于读取所述初始任务列表,并将所述初始任务列表存储到所述采集进程控制模块中,构成执行任务列表;
所述采集任务优化模块,用于对所述执行任务列表进行优先级排序;
所述采集任务优化模块,还包括权重计算模块,用于计算所述任务最终权重,具体计算过程为:
若当前时间距离所述任务最迟时间的剩余时间,不足所述任务上次耗时,
则finalweight=weight*100+timefly+1000;
否则finalweight=weight*100+timefly;
其中,timefly为所述任务上次耗时,weight为所述任务自定权重,finalweight为所述任务最终权重;
根据所述任务最终权重从大到小的顺序,对所述执行任务列表进行优先级排序。
所述运行服务器,用于执行数据采集任务。
本系统还包括,采集耗时统计模块,用于记录执行所述执行任务的耗时,更新到所述任务上次耗时字段中。
本系统还包括,存储数据库,用于存储所述运行服务器采集完的数据,用于存储所述运行服务器采集完的数据。
实施例三
如图3所示,为本发明数据采集控制的方法实际执行控制流程图,本实施例涉及一种数据采集控制的方法的具体实施例,包括以下步骤:
s1:建立采集平台管理模块,在所述采集平台管理模块中创建初始任务,形成所述初始任务的初始任务列表;
本实施例包括三个任务,建立任务唯一标识,分别为hengan_life,tk_life,greatlife,任务标识的取名没有规则的限定,只需保证每一个任务唯一标识是唯一不重复的,将这些任务唯一标识作为任务的标记存储在采集平台管理模块中,形成一个初始化的任务列表。
在本步骤中,还需要建立任务基本信息库,用于存储任务的基本信息,包括任务唯一标识,任务上次耗时,任务最迟时间,任务自定权重,任务最终权重,任务对应平台,运行服务器编号在内的字段。
为了表达方便,本实施例通过设定具体的字段名称来表述这些字段,具体为:
任务唯一标识-misisoncode;
任务上次耗时-timefly;
任务最迟时间-expiretime;
任务自定权重-weight;
任务最终权重-finalweight;
任务对应平台-platform;
运行服务器编号-servercode;
对于字段的取名规则没有任何限制,同时也可以根据实际情况,增加其他字段,任何与本发明思路相同的构思,均属于本发明的保护范围,在此不做详述。
本实施例的三个任务的基本信息如下:
任务1:
missioncode:hengan_life,
timefly:43,
expiretime:10:00:00,
weight:5,
finalweight:543,
platform:hengan_life,
servercode:server01。
任务2:
missioncode:tk_life,
timefly:51,
expiretime:11:00:00,
weight:2,
finalweight:251,
platform:tk_life,
servercode:server02。
任务3:
missioncode:greatlife,
timefly:21,
expiretime:13:00:00,
weight:3,
finalweight:321,
platform:greatlife,
servercode:server03。
s2:根据所述初始任务列表,为每一个所述初始任务建立运行服务器server01,server02,server03,与任务的对应关系已经保存在任务基本信息库中;
s3:建立采集进程控制模块,读取所述初始任务列表,并将所述初始任务列表存储到所述采集进程控制模块中,构成执行任务列表,hengan_life,tk_life,greatlife;
s4:建立采集进程优化模块,对所述执行任务列表进行优先级排序;
在进行排序之前,还需要查询所述执行任务对应的所述运行服务器上的任务状态,排除所述任务状态为执行完成的所述执行任务,对剩余所述执行任务进行优先级排序,查询任务状态具体可以通过采用shell脚本命令查询每一个运行服务器的任务状态。
假设本实施例的三个任务都未执行完成,重新计算三个任务的任务最终权重,假设当前时间为10:00:00;
任务一,当前时间距离任务最迟时间的剩余时间为0分钟,不足任务上次耗时43分钟:
finalweight=5*100+43+1000=1543;
任务二,当前时间距离任务最迟时间的剩余时间为60分钟,超过任务上次耗时的51分钟:
finalweight=2*100+51=251;
任务三,当前时间距离任务最迟时间的剩余时间为180分钟,超过任务上次耗时的31分钟:
finalweight=3*100+21=321;
将最新的任务最终权重更新到任务基本信息库中,最终任务基本信息库中的信息如下:
任务1:
missioncode:hengan_life,
timefly:43,
expiretime:10:00:00,
weight:5,
finalweight:1543,
platform:hengan_life,
servercode:server01。
任务2:
missioncode:tk_life,
timefly:51,
expiretime:11:00:00,
weight:2,
finalweight:251,
platform:tk_life,
servercode:server02。
任务3:
missioncode:greatlife,
timefly:21,
expiretime:13:00:00,
weight:3,
finalweight:321,
platform:greatlife,
servercode:server03。
根据所述任务最终权重从大到小的顺序,对所述执行任务列表进行优先级排序,结果为hengan_life->greatlife->tk_life。
s5:根据s4中排序后的所述执行任务列表,顺序在所述执行任务对应的所述任务服务器中执行所述执行任务,执行完成后将获取到的数据存储到存储服务器中。
通过采集耗时统计模块,记录下执行所述执行任务的耗时,更新到所述任务上次耗时字段中。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。