我可以访问一个流量数据服务器,从中获取XML文件,其中包含我需要的信息。 (例如:A点到B点:行程时间20分钟,距离18英里等)。
我下载XML文件(已归档),解压缩,然后处理并将其存储到数据库中。我只允许每个请求下载XML文件,但仅限于从上次下载过去5分钟。流量服务器上的XML每30秒更新一次,大约5分钟。在5分钟内,任何请求网页的用户都将从数据库中检索数据(无更新),因此限制了对流量服务器的请求数量。
我当前的方法存在的问题是,当我获得新的XML文件时,整个过程需要一些时间(3-7秒),这会让用户在得到任何东西之前等待太多。但是,当不需要XML下载并且直接从DB显示所有数据时,该过程非常快。 存档的XML大约为100-200KB,而未存档的XML大约为2MB。 XML文件包含来自3个或4个状态的流量数据,而我只需要一个状态的数据。这就是我目前使用DB方法的原因。
这种做法是好的吗?我想知道是否应该直接从下载的XML文件中为每个请求提取数据,并以某种方式限制XML文件从流量服务器下载的频率。或者,有人能指出我更好的方式吗?
XML文件的示例
这就是它在我的网站上的样子
答案 0 :(得分:0)
每次更改时都需要下载XML。
但是,只有您在下一段时间内拥有活跃用户才能下载文件。
由于您无法预见未来,因此您不知道您是否会在接下来的7秒内收到用户的请求。
但是,如果XML文件已更新,您可以找到HEAD请求。
因此,您可以创建一个每次更改时从远程系统下载XML的服务。如果通常不需要日期,您可以将该服务配置为不经常检查和/或下载。
只要您可以通过对用户行为的统计分析了解下载服务的最佳配置,系统的其余部分就可以独立于此。
如果您需要更实时,则需要根据来自其他系统的更改数据配置新服务,然后您需要开始在这两个系统之间双向交换数据,这更复杂并且可能导致更多副作用。但是从你提供的数字来看,无论如何都不需要这样的细节,所以我不会在乎它。