0

我的应用程序控制器中有几个before_filter要检查 1)current_user是否被禁止,2)current_user是否收到新消息,以及 3)current_user是否有任何待处理的好友请求。

这意味着在每次请求之前,应用程序都会检查这些内容。这会导致将来出现服务器问题,可能导致服务器过载吗?

4

1 回答 1

1

我不会肯定地说它会自己造成服务器过载,对于服务器过载,您需要许多并发请求,并且 rails 有一个开箱即用的数据库连接池,但这会减慢您的过程每个请求之前的 3 个查询甚至在控制器处执行其打算执行的操作。

Facebook 在 2009 年使用他们所谓的 BigPipe 解决了这个问题,它不是一项新技术,而是利用浏览器和发送一些带有页面碎片部分的请求的能力,然后才使用一些 Javascript 组合它。

您可以在这里阅读http://www.facebook.com/note.php?note_id=389414033919

至于您检查用户是否被禁止,是的,无论哪种方式,您都必须检查,也许您可​​以使用 memcached 或 redis 将其保存在缓存中,这样它就不会每次都直接访问您的数据库。

于 2013-05-19T06:32:51.203 回答