【发布时间】:2015-11-17 00:56:44
【问题描述】:
我需要一个每 15 分钟运行一次的服务来生成“最新”的 JSON 供我们的 AJAX 服务使用。我们希望将此 JSON 用于指标分析、图表等所有爵士乐。
每 15 分钟运行一次的原因是 JSON 生成需要长时间运行 - 查询至少需要 45-60 秒才能完成。随着我们应用程序需求的增加,这预计会增加。
编辑:我们从 SQL 数据库中提取所有数据。我们已经建立了一个庞大的关系数据库。在快速、高效的时间内为我们的网络用户获取数据是绝对必要的。因此,动态查询数据库以获取指标所需的所有数据并不令人满意,因为它花费的时间太长。
EDIT 2 数据需要每 15 分钟完全重新生成一次。 JSON 数据需要几乎立即可用。我们不关心后台服务是否需要很长时间,只要它每 15 分钟生成一次我们的 JSON。
问题是我不确定如何存储这个 JSON。将至少生成 30-40 个单独的 JSON 对象并序列化为字符串以进行传输。我不确定应该如何存储这些字符串。此外,这些 30-40 只会随着时间的推移而增加。我们还预设了生成 JSON 的时间段,分别是 1 天、1 周、1 个月、3 个月、6 个月、1 年、2 年。
我考虑过一个平面数据库表,但我讨厌有几十列但只有一行的表(这对我来说似乎不合适)。我想知道是否有可能在服务器上生成某种“data.json”文件,服务会在必要时从中提取数据,但这是否有任何缺点?可以缓存吗? (缓存会破坏这一点)。
还有其他方法吗?专家能否对此给出中肯的意见?
【问题讨论】:
-
您想存储/操作 json 吗?使用MongoDB
-
我想这取决于您希望在生成数据后对它做什么。如果它的唯一目的是静态服务,我不明白为什么你应该将它们保存为文件:它快速、简单且可扩展性良好。
-
这就是我的想法,虽然我只是担心浏览器是否会缓存
mydata.json文件。从我读到的,它没有。基本上我们所做的只是获取 JSON,在客户端解析它并用于我们的度量系统。我关心的是速度和效率。在这一点上,后台服务是否需要 10 秒或 10 分钟才能完成并不重要。需要立即/立即可用的最终 JSON 确实如此。 -
您可以告诉浏览器是否缓存文件以及文件应在标头中缓存多长时间。您还可以更改文件名以反映内容。
-
啊,是的!你可以,我完全忘记了
$.AJAX({cache:false})命令。干杯提醒我。
标签: javascript json ajax database