采集频率的动态调整策略

简介:

采集频率的动态调整策略

背景

之前的采集配置都需要手动设置爬行间隔时间,希望根据不同网站板块实际情况进行填写。但实际使用时发现想填准这个值非常困难,页面本身更新频率也是变化的,所以结果就是基本都是填写成默认值。从而导致爬行频率设置形同虚设,对于很多几乎不更新的板块也配置了较高的采集频率一直在工作(默认是15分钟一次),浪费系统资源。另外早晚帖文的更新速度也明显不一样,而系统却一直按固定频率进行爬行。

解决思路

既然写成静态的间隔时间很不实用,那么就需要用一个动态的方式来根据实际情况灵活调整。

鉴于滑动窗口协议流量控制的思路,采集也可以采用类似方式。网页下载无非三种情况:(1)发现了新帖文并采集入库,(2)未发现新帖文则没有东西入库,(3)网页下载失败或网页改版导致没发现帖文。目前在每次任务采集完成以后都记录其采集的具体情况,比如发现多少条记录、入库多少条记录等。那么对于发现有更新就加快采集频率,没更新就减慢采集频率,实际情况页面更新频率也是比较平滑,所以这样就会让采集系统在采集过程中可以有一个调整周期,逐渐与页面实际更新频率相接近。但为了防止过快或者过慢采集,还要设置一个采集频率的边界。

解决方案

加速条件:本轮次采集该版块有新帖文入库,则按一定比例加快采集速度,加速因子为upactor

减速条件:本轮次采集该版块未发现任何新帖文,则按一定比例下降采集速度,减速因子为downactor

频率范围5分钟/轮次~1/轮次(1440分钟/轮次)

动态公式

f(0) = 15m/r

If found new records, f(i+1) = f(i) * upactor, f(i+1) < 1440 m/r

If not found new recoreds, f(i+1) = f(i) * downactor, f(i+1) > 5 m/r

 

根据初步评估,upactor1.125downactor0.5比较合适。那么一个持续不变化的网站采集频率从15m/r变化到1440m/r一共需要约40次任务调度,共9天的时间。而一个网站持续变化最多是从1440m/r变化成5m/r,一个需要调度约8次,共一天的时间。

这种低增长快下降的策略可以更好应对突然加快更新频率,不容易遗漏帖文。



本文转自passover 51CTO博客,原文链接:http://blog.51cto.com/passover/716307,如需转载请自行联系原作者

相关文章
|
2月前
|
数据挖掘 定位技术
基于Amos路径分析的模型修正与调整
基于Amos路径分析的模型修正与调整
139 2
|
2月前
|
机器学习/深度学习 传感器 监控
交通信号控制优化
交通信号控制优化
96 2
|
9月前
|
运维
查看调整cpu频率及模式
查看调整cpu频率及模式
186 2
|
2月前
|
SQL JSON 监控
无需重启应用,动态采集任意点位日志
现实系统往往有着较高的复杂度,我们借助Trace、Log、Metric三驾马车使我们的系统具备了一定的可观测性,但观测位置和信息往往是固定的,而我们所遇到的问题常常是意料之外的,这就导致我们能够定位问题的范围,但是难以更进一步,这时候我们就需要在我们想要的位置采集信息来帮助我们,在通常的实践中这就意...
51 0
无需重启应用,动态采集任意点位日志
|
SQL 存储 Oracle
Oracle优化07-分析及动态采样-动态采样
Oracle优化07-分析及动态采样-动态采样
115 0
|
机器学习/深度学习 传感器 算法
自适应动态优化控制附matlab代码
自适应动态优化控制附matlab代码
|
传感器 移动开发
振弦采集模块的频率值与温度值的修正
注意: VM 模块不进行频率、温度修正时,即可以保证频率 0.1Hz、温度 0.5℃ 的绝对精度,多项式修正仅用于微小的调整使用。当出现测量值与预期值相差较大的情况时,应排查造成误差的原因,不应该直接用参数进行修正。 注意:温度修正仅适用于 NTC 热敏电阻类型的温度传感器。
振弦采集模块的频率值与温度值的修正
|
传感器
VM系列振弦采集模块 测量时长与优化
不同的激励方法、延时参数值设置会导致传感器测量时长不同,下面仅以三种基本激励方法进行时长分析,另外三种组合激励方法均可通过这三种基本激励方法推导得出。
VM系列振弦采集模块 测量时长与优化
|
传感器 数据处理
关于振弦采集模块及采集仪振弦频率值准确率的问题
关于振弦采集模块及采集仪振弦频率值准确率的问题 (1)谁的频率更准确 VM系列振弦模块以及使用模块开发的各类仪器,我们所做的,是真实、客观地反映振弦传感器输出的周期信号的频率,至于有些人疑问的“为什么你家的和别人家的读数仪得到的频率不一样”的问题,我们采集到的确实是传感器真实、实际的输出,没有经过任何加工处理。其他别家产品我们手上没有,无法得出数据,不作评论。
关于振弦采集模块及采集仪振弦频率值准确率的问题
|
存储 Java
报警系统QuickAlarm之频率统计及接口封装
前面将报警规则的制定加载解析,以及报警执行器的定义加载和扩展进行了讲解,基本上核心的内容已经完结,接下来剩下内容就比较简单了 1.报警频率的统计 2.报警线程池 3.对外封装统一可用的解耦
223 0
报警系统QuickAlarm之频率统计及接口封装