我可以访问交通数据服务器,从那里我可以获得包含所需信息的XML文件。(例如:A点到B点:旅行时间20分钟,距离18英里等)。
我下载XML文件(已存档),将其解压缩,然后对其进行处理并将其存储到DB中。我只允许每次请求下载XML文件,但从上次下载到现在只有5分钟。流量服务器上的XML每30秒到5分钟更新一次。在5分钟的时间内,任何请求网页的用户都将从数据库中检索数据(无更新),从而限制了向交通服务器发出的请求的数量。
我目前的方法的问题是,当我获得新的XML文件时,整个过程需要一些时间(3-7秒),这使得用户在获得任何东西之前等待了太多时间。但是,当不需要下载XML并且所有数据都直接从数据库中显示时,这个过程非常快。归档的XML大小约为100-200KB,未归档的XML大小约为2MB。XML文件包含来自3个或4个州的交通数据,而我只需要一个州的数据。这就是我目前使用DB方法的原因。
这是一种好的方法吗?我想知道是否应该为每个请求直接从下载的XML文件中提取数据,并以某种方式限制从流量服务器下载XML文件的频率。或者,谁能给我指一条更好的路?
XML文件的示例

这是它在我的网站上的样子

发布于 2015-04-25 17:19:26
每次XML更改时,您都需要下载它。
但前提是在下载文件所需的下一段时间内有活跃用户。
因为你不能预见未来,你不知道你是否会在接下来的7秒内收到用户的请求。
但是,您可以通过HEAD请求找出XML文件是否已更新。
因此,您可以创建一个服务,该服务在XML每次更改时从远程系统下载它。如果确实不经常需要日期,您可以将该服务配置为不经常检查和/或下载。
您的系统的其余部分可以独立于它,只要您可以通过对用户行为的统计分析来了解下载服务的最佳配置。
如果您需要更高的实时性,您需要根据来自另一个系统的更改数据来配置新服务,然后您需要开始在这两个系统之间双向交换数据,这会更加复杂,并可能导致更多副作用。但从您给出的数字来看,这个级别的细节可能无论如何都不需要,所以我不会关心它。
https://stackoverflow.com/questions/29824164
复制相似问题