我需要一个每15分钟运行一次的服务来生成“最新”的JSON,以便我们的AJAX服务消费。我们想用这个JSON来进行度量分析,图表,所有的爵士乐。
每15分钟运行一次的理由是,JSON生成的时间很长--查询至少需要45-60秒才能完成。预计随着申请需求的增加,这一数字将增加。
编辑:我们从数据库中提取所有数据。我们已经建立了一个庞大的关系数据库。在一个快速、高效的时间内为我们的网络用户获取数据是绝对必要的。因此,在数据库中查询所有我们需要的度量数据是不令人满意的,因为这需要太长时间。
编辑2数据需要每15分钟完全再生一次。JSON数据需要几乎即时可用。我们并不关心后台服务是否需要很长时间,只要它每15分钟生成一次JSON。
问题是,我不确定如何存储这个JSON。将至少有30-40个单独的JSON对象生成并序列化到字符串以进行传输。我不知道该如何存储这些字符串。而且,这30-40只会随着时间的推移而增加。我们也有生成JSON的预先设定的时间周期,即1天,1周,1个月,3个月,6个月,1年,2年。
我考虑过一个平面数据库表,尽管我不喜欢有几十个列和只有一行的表(在我看来,这似乎不对)。我想知道是否有可能在服务器上生成某种类型的"data.json“文件,在必要时这些服务会从中提取数据,但这有什么缺点吗?它能被缓存吗?(缓存会破坏这一点)。
还有其他方法可用吗?专家能给出一个可靠的意见吗?
发布于 2014-07-02 07:25:02
由于数据是静态的,而不是动态生成的,所以我建议将它们存储为文本文件。它速度快,简单,音阶也很好。对旧数据进行存档很容易,如果不需要历史记录,也可以简单地覆盖旧文件。
为了避免缓存json文件,您可以在客户端完成它
$.ajax({ cache: false })或者,您可以在服务文件时在报头服务器端执行此操作。在这里,您还可以将缓存时间设置为15分钟,以尽量减少服务器上的负载。如何做到这一点,取决于您正在使用的技术。
发布于 2014-07-01 09:54:25
我认为,通过查看其他大型公司的API (Tumblr.、Facebook等),您可以将此示例作为数据的唯一来源。
但是,我想向您说明,使用Database存储数据要比用JSON存储数据更有效。
将数据存储在文件中将要求您创建自己的插件来处理文件中的数据,以检测数据是否正常,用户的输入是否正常,数据是否匹配,如果匹配,其他哪些数据可以与其相关。那将是为你编写代码的好时机。另一方面,如果使用数据库,则只需选择所需的行和列,就可以对返回的数据生成JSON字符串,然后将其作为JSON对象返回给客户端。这就是你想要的。
使用数据库,为您将要使用的每个可能的JSON对象创建一个表。像这样
ObjId | ObjName | ObjProperty
1 | User | Employee
2 | User | Client这是给您的示例表。一旦你保存完这些数据。可以使用简单的SELECT语句获取数据,如下所示
SELECT * FROM table_name WHERE ObjId = 1现在,第一行将返回给您。对其进行字符串化,然后将其作为字符串返回给客户端以进行处理。
https://stackoverflow.com/questions/24507190
复制相似问题