定时采集时间控制方式

原创 2007年10月10日 10:09:00

定时采集时间控制方式探讨

 

       开发监控系统中经常会碰到数据采集模块的开发,本文探讨一下如何控制采集周期以获得更好的效果。

       周期控制方式分为三类:1。定时周期;2。固定等待周期;3。可变等待时间周期。

1.  定时周期:

定时周期方式指以定时器的方式定时启动采集线程。周期控制不受采集线程执行情况的影响,定时器以周期的方式定时开启新线程,而不管之前开启的线程是否已执行完成。这种方式的优点是周期控制的精确度只取决于计算机时钟精度及处理能力,可以很好的控制采集周期。但是当周期设置过相对采集线程运行时间过短,将会导致同一时间会存在几个并行的采集线程,可能会发生线程或资源冲突。

 

 

如图所示:共有6个时间节点,假设采集任务执行时间需要三个节点,而时间周期为1个节点,所以在34两个时间节点间可能存在三个任务并行执行的情况。如果执行时间更长,周期更短,那么并行的线程数会更多。

        这种方式适用于采集任务时间短于周期,且对时间精度要求高的应用中。采集任务时间长于周期的需要解决冲突问题。

 

 

2.  固定等待周期:

固定等待周期是指在任务执行前后的等待时间都为固定时间,这个时间称为周期,但并不是真正的周期。如下图所示,实际上的周期为采集任务执行时间加上周期等待时间,周期等待时间为固定时间,而且采集任务时间是可变的,因此也并不好缩短等待时间来控制周期。这种方式的好处是工作过程中可以以单线程的方式实现,不会发生线程或资源冲突的情况。但是时间精度不好,采集任务执行时间会累积起来影响采集周期,如图所假设采集任务执行时间为四分之一个周期,结果四次采集执行后占用了5个时间节点的时间,时间累积使得采集结果产生了时间间隙。假设以秒为单位的采集,可以在连续的34353637秒之间少掉了35秒的对应值,影响采集结果的计算。

        这种方式只适用于对时间精度要求不高的场合。

图中短黑箭头表示采任线程执行,线长红箭头表示周期等待时间。

 

 

3.  可变等待周期:

可变等待周期是指根据任务执行时间自动调整等待时间,以便获得较为合理的周期控制。经测试java.util.Timer属于这种方式。

        这种方式的基本思想是如果采集线程执行时间<周期,那么等待时间=周期—采集线程执行时间。如果采集线程执行时间>周期,那么等待时间为0,即不再等待,当然实际周期大于设定周期,将会导致以后的采集周期偏离预定周期,同样这种情况对计算也不利。

        这种方式可以自动调整等待时间,同样保持只有一个采集线程,在实际不稳定的环境中缺少很好的时间精度控制,但具有较好稳定性,是一种比较折中的办法。

 

 

定时调度与管理

没有JobCenter时我们要面对的:   电商业务链条很长,业务逻辑也较为复杂,需要成百上千种定时任务。窝窝的大多数定时任务其实调用的是本地或远端 Java/PHP/Python Web Se...
  • hljlzc2007
  • hljlzc2007
  • 2015年01月23日 11:15
  • 2219

flume定时采集日志的配置

1 Flume安装和配置1.在10台日志服务器和1台日志收集服务器上分别上传apache-flume-1.6.0-bin.tar安装包。2.解压apache-flume-1.6.0-bin.tar安装...
  • qq_37359656
  • qq_37359656
  • 2018年01月16日 15:25
  • 449

PHPCMS定时自动采集

  • 2014年03月07日 13:36
  • 37KB
  • 下载

模拟使用Flume监听日志变化,并且把增量的日志文件写入到hdfs中

1.采集日志文件时一个很常见的现象采集需求:比如业务系统使用log4j生成日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到hdfs中。 1.1.根据需求,首先定义一下3大要素:采集源,即...
  • toto1297488504
  • toto1297488504
  • 2017年06月13日 22:32
  • 2642

定时采集时间控制方式

定时采集时间控制方式探讨        开发监控系统中经常会碰到数据采集模块的开发,本文探讨一下如何控制采集周期以获得更好的效果。       周期控制方式分为三类:1。定时周期;2。固定等待周期;3...
  • stevexk
  • stevexk
  • 2007年10月10日 10:09
  • 1995

LabVIEW关于定时的研究

http://blog.ednchina.com/sataco/30012/message.aspx 评点:究竟是实用Wait还是Wait Until Next Ms,这两个关于时间的VI一直是很多L...
  • weekice
  • weekice
  • 2008年05月23日 14:07
  • 201

STM32f103的数电采集电路的TIMER定时器的使用与时序控制的程序

STM32 的通用定时器是一个通过可编程预分频器(PSC)驱动的 16 位自动装载计数器(CNT)构成。STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较...
  • DevinTT
  • DevinTT
  • 2015年07月22日 14:45
  • 1744

日志系统之定时任务执行引擎

概述最近这段时间在强化日志系统自身的稳定性和可靠性,一个稳定可靠的系统离不开监控,我们这里谈及的监控除了服务是否存活还有这些组件的核心metrics采集与抓取,为此我们将这些任务做成了定时任务来执行。...
  • yanghua_kobe
  • yanghua_kobe
  • 2016年04月23日 22:07
  • 6667

Flume监听文件夹中的文件变化,并把文件下沉到hdfs

1、采集目录到HDFS采集需求:某服务器的某特定目录下,会不断产生新的文件,每当有新文件出现,就需要把文件采集到HDFS中去 根据需求,首先定义以下3大要素 采集源,即source——监控文件目录...
  • toto1297488504
  • toto1297488504
  • 2017年06月13日 23:52
  • 778

总线仲裁之计数器定时查询

总线仲裁中集中式仲裁有一个计数器定时仲裁,看书的时候没弄懂。网上看了公开课算弄明白了。 其实很简单,我们来看看它的工作过程:   假设总线仲裁器中计数初值为0,这时设备2、4都通过BR线发出请...
  • Mtrix
  • Mtrix
  • 2016年12月31日 11:38
  • 2746
收藏助手
不良信息举报
您举报文章:定时采集时间控制方式
举报原因:
原因补充:

(最多只允许输入30个字)