监视文件更改的算法

时间:2015-10-27 12:16:35

标签: algorithm http curl pattern-matching batch-processing

当远程站点上的特定文件发生变化时,监控和查找最佳时间的好​​方法是什么?我想通过查找文件通常更新时的模式来限制我们下载文件的频率...

  1. 我们定期下载文件(产品供稿),数据范围从1Mb到200Mb
  2. 其中一些文件每小时更新一次,有些是每周更新一次,其他文件每月更新一次
  3. 文件不会在同一时间总是更新,但通常会在一定时间内出现模式
  4. 我们只想在知道他们已经更改
  5. 时下载这些文件
  6. 我们希望在文件更改后尽快下载
  7. 解决此问题的一种简单方法是每小时使用HTTP HEAD请求检查文件,并在我们发现Last-modifiedContent-Length发生更改时触发下载。遗憾的是,我们无法依赖HTTP标头,因为它们通常会丢失,或者不会指示文件的实际时间/大小。我们经常要下载整个文件,以确定它是否已更改。

    首先,我认为我可以编写一个过程,每隔1,2,4,8 ......小时检查一次文件(每次迭代加倍),直到找到文件发生变化,然后坚持使用该数字。这可能有效,但它并不是最佳的。

    为了优化它,我想到调整间隔数以找到最佳位置。然后,各种各样的场景开始出现在我的想法失败的地方 - 例如周末和公众假期,因为人们不在工作,文件不会被更新。 模式,但也有例外。

    接下来我开始阅读"步骤检测"算法很快就意识到我已经超出了我的深度。人们如何解决这些问题?

    我猜测解决方案将涉及某种形式的数据历史记录,但我摸索着如何优化收集数据的算法以及如何派生模式。希望有人以前处理过它。

0 个答案:

没有答案