2014-01-21 45 views
1

我目前正在烧瓶中实施webapp。这是一个可以收集数据的可视化应用程序。每个页面或部分将始终有一个GET调用,每个调用将返回一个JSON响应,然后将被处理为显示的数据。如何加速烧瓶应用程序的JSON?

目前的问题是,在函数返回JSON响应之前需要进行一些计算。这会导致一些响应比其他响应慢,从而使页面加载速度变慢。我如何正确处理这个问题?我已经阅读了烧瓶中的缓存,并想知道现在应用程序需要的是什么。我也研究了一下Redis-Queue的实现。我不确定哪个是正确的方法。

任何帮助或见解将不胜感激。提前

回答

2

由于这里有一些想法:

如果您使用您的计算源数据不太可能改变的时候则可以运行一次计算并保存结果。然后只要源数据保持不变,您就可以直接提供结果。

您可以将结果保存回数据库,或者如您所建议的那样,您可以将它们保存在更快的存储中,如Redis。根据你的描述,我怀疑,性能上的巨大收益将不会经常进行计算,存储在常规数据库与Redis或类似软件之间的差异可能并不显着。

如果数据经常变化,那么您仍然需要经常进行计算。对于这种情况,您拥有的选项是将计算推送给客户端。您的Flask应用程序可以仅以JSON格式返回源数据,然后浏览器可以在用户的​​计算机上执行处理。

我希望这会有所帮助。

+0

嗨米格尔,谢谢你的想法。是的,数据经常发生变化,页面需要尽可能接近实时地显示结果。 –

+0

如果数据经常变化,那么高速缓存就不存在了。让客户端执行CPU密集型任何问题?它会更快,因为每个客户端都会这样做一次,如果您在服务器上执行此操作,则必须为所有客户端执行此操作。 – Miguel

+0

某些计算可能对客户密集。数据经常变化,但只要页面加载速度更快,我会愿意牺牲一些数据的准确性。 –