我需要一个每 15 分钟运行一次的服务来生成“最新”的 JSON 供我们的 AJAX 服务使用。我们希望使用此 JSON 进行指标分析、图表等所有爵士乐。
每 15 分钟运行一次的原因是 JSON 生成需要长时间运行 - 查询至少需要 45-60 秒才能完成。随着我们应用程序需求的增加,这一数字预计还会增加。
编辑:我们从 SQL 数据库中提取所有数据。我们已经建立了一个巨大的关系数据库。快速、高效地向我们的网络用户提供数据是绝对必要的。因此,动态查询数据库以获取指标所需的所有数据并不令人满意,因为它花费的时间太长。
编辑 2 数据需要每 15 分钟完全重新生成一次。 JSON 数据需要几乎即时可用。我们不关心后台服务是否需要很长时间,只要它每 15 分钟生成一次 JSON 即可。
问题是我不确定如何存储这个 JSON。将生成至少 30-40 个单独的 JSON 对象并将其序列化为字符串以进行传输。我不确定应该如何存储这些字符串。而且,这 30-40 个只会随着时间的推移而增加。我们还预设了生成 JSON 的时间段,分别是 1 天、1 周、1 个月、3 个月、6 个月、1 年、2 年。
我考虑过使用平面数据库表,尽管我讨厌有几十列只有一行的表(这对我来说似乎不太合适)。我想知道是否可以在服务器上生成某种“data.json”文件,服务可以在必要时从中提取数据,但这是否有任何缺点?可以缓存吗? (缓存会破坏这一点)。
还有其他方法吗?专家能否对此给出中肯的意见?
最佳答案
由于数据将静态提供,而不是动态生成,因此我建议将它们存储为文本文件。它快速、简单且可扩展性良好。很容易对旧数据进行存档,或者如果不需要历史记录,您可以覆盖旧文件。
为了避免缓存 json 文件,您可以在客户端进行
$.ajax({ cache: false })
或者您可以在提供文件时在 header 服务器端执行此操作。您还可以在此处将缓存时间设置为 15 分钟,以最大程度地减少服务器上的负载。如何完成此操作取决于您使用的技术。
关于javascript - JSON数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24507190/