欢迎来到天天文库
浏览记录
ID:21921026
大小:62.50 KB
页数:10页
时间:2018-10-25
《基于spring框架的定时数据采集关键技术研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于Spring框架的定时数据采集关键技术研究:在移动通讯信息系统的数据采集中,由于无法直接从硬件采集数据,这就需要其他系统,如X管系统等,提供通讯基站的基本信息数据,并以文档的形式存放于特定的地方,便于定时采集数据,为以后的数据同步处理和显示做准备。为此,该文结合Spring框架的Quartz开源项目,分析了JAVA环境下的定时数据采集的关键技术。 关键词:信息系统;Spring框架;Quartz;数据采集 :TP311:A:1009-3044(2011)10-2229-02 1概述 在移动通讯行业信息系统中,很多信息系统的数据无法
2、直接从硬件上取得,需要从其他系统,譬如X管系统等,采集自己需要的数据,进行处理和显示。数据提供者(如X管系统)一般会提供一个数据承载平台,譬如FTP服务器,将数据以文件的形式存放在FTP服务器中;如果承载平台是数据库,则需提供访问数据库某些表的权限,供数据采集方从中获取需要的数据文件或信息,这样一来,就存在很多问题需要数据采集方解决。 首先要解决的问题是数据采集的定时性,由于数据供应方每隔一段时间,可能是10分钟,15分钟增加一个文件,这就要求我们的采集程序做定期的扫描,以保证数据的实时性,不能把10分钟的数据当成15分钟的来处理;其二在于
3、数据接口的不一致性,数据供应者提供的接口平台不可能只是FTP服务器,可能包含SQLSERVER数据库,FTP服务器,Cobar等等;而且不同平台提供的文件也存在多样性,譬如数据库平台只提供数据库表,FTP提供CSV,XML,TXT,等等类型的文件,这些都需要统一分析,逐步录入到增值系统的数据库。综合以上我们可以得出,采集程序纷繁而复杂,而且对采集程序的模块化要求比较高。 2010年初,某省电信基于GoogleEarth的综合信息展示系统项目顺利实施,作为通讯设备信息3D展示系统,具备一定的创新性,笔者有幸参与了该项目,编写了其中的数据采集模
4、块某些接口的完整代码。下面以该项目为例,具体描述了该系统中采集模块的关键技术:定时线程处理技术以及文件解析入库处理方法。 2定时线程处理技术 从数据采集的周期性特点可知,此系统中采集程序是一个多任务,周期小的定时任务,可能存在多线程同时运行,共同调用一个资源的情况,所以应充分考虑服务器的承受能力,以电信GoogleEarth展示系统为例,采集服务器配置为Inter(R)Xeon(R)cpuE53101.60GHz,1.60GHz4GB内存。 选择好硬件后,接下来的难题是选择一个适合的定时线程处理技术。而JAVA的JDK直接为我们提供了T
5、imer类,来处理一般的定时任务需要。 2.1Timer类 Java中timer类可以用来进行执行计划,定时任务。我们所要做的只是继承java.util.TimerTask类,而timerTask也是实现了java.lang.Runnable接口。我们所要做的只是在我们自己的类里重置run()方法。所以我们的TimerTask类其实是一种线程,但线程的调度往往不是按照我们希望来实现的,因为一些垃圾收集等原因,我们计划的时间点,却没有执行必要的任务。这样会产生一些问题。虽然,Timer类也提供了scheduleAtFixedRate()方法
6、用来在垃圾收集后能够快速的追上任务进度,但这个不一定是我们所需要的。特别是在一些J2EE服务器上Timer是无法控制的,因为它不在容器的权责范围内。另外的,这个任务调度也缺乏一些企业级所需要的特殊日期定制的功能,以及修改,查找任务的功能。为了满足项目的需求,我们需要探究另外的定时线程技术,以精确线程启动的时间。这里,我们要介绍的另一个定时线程处理技术:Quartz 2.2Spring框架中的Quartz 对于任务计划定时执行的工作,JDK的标准API提供了Java.util.Timer和java.util.TimerTask类,然而Tim
7、er功能有限,只能指定任务与任务之间的周期(Period),无法指定某个时间点定时执行任务。这时我们可以使用Quartz,它是一个开源的作业调度框架,它完全由Java写成。具有很大的灵活性而又不失简单性,能够用它来为执行一个作业而创建简单的或复杂的调度。Quartz框架的核心是调度器,调度器负责管理Quartz应用运行时的环境设置。为确保可伸缩性,Quartz采用了基于多线程的架构,启动时框架初始化一套l,基本描述如下: 这个dc.xml主要是配置了在这个采集模块中,需要启动多少个触发器(trigger)
8、,而每个触发器代表一个线程安全的采集分支。除此之外,我们还需要配置另外一个文件来具体描述每个采集分支的运行时间,目标对象。我们将这个文件称为:perfdc.xml.
此文档下载收益归作者所有