2015-11-20 127 views
0

在我的Rails 4應用程序中,我使用metainspector gem來允許用戶顯示來自它們發佈到表單的URL的元數據。Rails 4:metainspector gem減慢應用程序的運行速度

由於我安裝了這個gem,每次嘗試訪問我自己的應用程序的頁面時,其中的元數據都是從另一個網站中提取的,所以加載時間顯着增加。

加載時間增加從小型和本地網站難以察覺的延遲,幾乎凍結大型和外國網站的應用程序。

給你一個想法,一個普通頁面的加載時間通常在400毫秒以下:當我們用metainspector提取數據時,它可能會超過30,000毫秒(我用rack-mini-profiler測量這些加載時間)。

我在網上找不到類似的問題。

這裏就是我想弄清楚:

  1. 這聽起來是正常或做了錯誤的方式,我設置的東西嗎?

  2. 有沒有辦法加快加載時間metainspector?例如通過caching responses

  3. 如果沒有辦法加快加載時間,我是否應該實現timeout限制並顯示錯誤消息?

回答

1

這是完全正常的,確切的說這不是metainspector是什麼拖慢你的應用程序,那就是你要請求外部URL的事實。

你應該嘗試緩存使用metainspector內置的緩存機制的反應,但也有可能,如果這個移動到異步工作使用背景隊列,保存或緩存結果。

+0

非常感謝您的有趣和相關的答案。你是完全正確的。使用緩存是一種選擇。我走了另一條路線,雖然:我創建了一個新的模式和存儲metada在裏面,所以每次我需要的信息的時候,我不再請求外部URL,而只是從數據庫中提取數據。 –

+1

是的,這也是一個很好的選擇,也許你只需要不時刷新它。 – jaimeiniesta

+0

再次絕對正確。非常感謝。 –