簡體   English   中英

應用程序控制器中的before_filter是否會降低應用程序速度?

[英]Does a before_filter in the application controller slow down the app?

我的應用程序控制器中有一些before_filter來檢查1)如果current_user被禁止,2) current_user收到新消息,3) current_user有任何待處理的好友請求。

這意味着在每次請求之前,應用都會檢查這些內容。 這會在將來導致服務器出現問題,並可能導致服務器過載嗎?

我絕對不會說會自己造成服務器超載,對於服務器超載,您需要許多並發請求,並且Rails開箱即用地具有到數據庫的連接池,但這會減慢過程的速度。在每個請求甚至要在控制器之前執行3個查詢之前,該查詢就已經執行了。

Facebook在2009年使用他們所謂的BigPipe解決了這個問題,這不是一項新技術,而是利用了瀏覽器以及能夠發送一些帶有頁面零散部分的請求,然后才使用一些Javascript進行組合的功能。

您可以在此處閱讀http://www.facebook.com/note.php?note_id=389414033919

至於檢查用戶是否被禁止,是的,您必須以任何一種方式進行檢查,也許您可​​以使用memcached或redis將其保存在緩存中,這樣就不會每次都直接訪問您的數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM