【发布时间】:2015-07-01 16:20:44
【问题描述】:
我可以访问流量数据服务器,从该服务器获取包含所需信息的 XML 文件。 (例如:A 点到 B 点:行程时间 20 分钟,距离 18 英里等)。
我下载 XML 文件(已存档),解压缩,然后对其进行处理并将其存储到数据库中。我只允许每个请求下载 XML 文件,但前提是距离上次下载已过去 5 分钟。流量服务器上的 XML 每 30 秒到 5 分钟更新一次。在 5 分钟内,任何请求网页的用户都会从数据库中检索数据(不更新),因此会限制向流量服务器发出的请求数。
我目前的方法的问题是,当我获得新的 XML 文件时,整个过程需要一些时间(3-7 秒),这使得用户在获得任何东西之前等待太多。但是,当不需要下载 XML 并且所有数据都直接从数据库中显示时,该过程非常快。 归档的 XML 约为 100-200KB,而未归档的 XML 约为 2MB。 XML 文件包含来自 3 或 4 个州的交通数据,而我只需要一个州的数据。这就是我目前使用 DB 方法的原因。
这种方法好用吗?我想知道是否应该为每个请求直接从下载的 XML 文件中提取数据,并以某种方式限制从流量服务器下载 XML 文件的频率。或者,谁能指出更好的方法?
XML 文件示例
这是我网站上的样子
【问题讨论】:
-
定义“好”。什么衡量标准对您很重要?
-
我想到了 CRON 作业路线,但这意味着无论是否有任何用户请求数据,它都会被更新。现在它只有在被请求并且自上次更新后不超过 5 分钟时才会更新。即使在请求新的 XML 时也能更快地访问!
-
您可以创建一个定期访问 XML 文件、解析它并将数据存储到数据库中的 CRON 作业。然后用户将只能访问数据库数据。这样用户访问数据时就不会出现任何明显的延迟。
-
老实说,如果用户被告知正在发生的操作(例如“正在加载...”状态栏或微调器),那么 3-7 秒并不是什么大问题。您可以使用 AJAX 来实现。
-
@Cristian 如果每个请求都从数据库读取,但当您读取过期数据时,它也会触发 XML 下载怎么办?多个请求(下载期间)仍会从 DB 中读取。