当远程站点上的特定文件发生变化时,监控和查找最佳时间的好方法是什么?我想通过查找文件通常更新时的模式来限制我们下载文件的频率...
解决此问题的一种简单方法是每小时使用HTTP HEAD
请求检查文件,并在我们发现Last-modified
或Content-Length
发生更改时触发下载。遗憾的是,我们无法依赖HTTP标头,因为它们通常会丢失,或者不会指示文件的实际时间/大小。我们经常要下载整个文件,以确定它是否已更改。
首先,我认为我可以编写一个过程,每隔1,2,4,8 ......小时检查一次文件(每次迭代加倍),直到找到文件发生变化,然后坚持使用该数字。这可能有效,但它并不是最佳的。
为了优化它,我想到调整间隔数以找到最佳位置。然后,各种各样的场景开始出现在我的想法失败的地方 - 例如周末和公众假期,因为人们不在工作,文件不会被更新。 是模式,但也有例外。
接下来我开始阅读"步骤检测"算法很快就意识到我已经超出了我的深度。人们如何解决这些问题?
我猜测解决方案将涉及某种形式的数据历史记录,但我摸索着如何优化收集数据的算法以及如何派生模式。希望有人以前处理过它。