2014-01-21 44 views
1

我目前正在燒瓶中實施webapp。這是一個可以收集數據的可視化應用程序。每個頁面或部分將始終有一個GET調用,每個調用將返回一個JSON響應,然後將被處理爲顯示的數據。如何加速燒瓶應用程序的JSON?

目前的問題是,在函數返回JSON響應之前需要進行一些計算。這會導致一些響應比其他響應慢,從而使頁面加載速度變慢。我如何正確處理這個問題?我已經閱讀了燒瓶中的緩存,並想知道現在應用程序需要的是什麼。我也研究了一下Redis-Queue的實現。我不確定哪個是正確的方法。

任何幫助或見解將不勝感激。提前

回答

2

由於這裏有一些想法:

如果您使用您的計算源數據不太可能改變的時候則可以運行一次計算並保存結果。然後只要源數據保持不變,您就可以直接提供結果。

您可以將結果保存回數據庫,或者如您所建議的那樣,您可以將它們保存在更快的存儲中,如Redis。根據你的描述,我懷疑,性能上的巨大收益將不會經常進行計算,存儲在常規數據庫與Redis或類似軟件之間的差異可能並不顯着。

如果數據經常變化,那麼您仍然需要經常進行計算。對於這種情況,您擁有的選項是將計算推送給客戶端。您的Flask應用程序可以僅以JSON格式返回源數據,然後瀏覽器可以在用戶的​​計算機上執行處理。

我希望這會有所幫助。

+0

嗨米格爾,謝謝你的想法。是的,數據經常發生變化,頁面需要儘可能接近實時地顯示結果。 –

+0

如果數據經常變化,那麼高速緩存就不存在了。讓客戶端執行CPU密集型任何問題?它會更快,因爲每個客戶端都會這樣做一次,如果您在服務器上執行此操作,則必須爲所有客戶端執行此操作。 – Miguel

+0

某些計算可能對客戶密集。數據經常變化,但只要頁面加載速度更快,我會願意犧牲一些數據的準確性。 –