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

时间:2013-05-19 06:22:31

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我的应用程序控制器中有一些before_filter要检查1)如果current_user被禁止,2)如果current_user收到了新消息,3)如果{ {1}}有任何待处理的好友请求。

这意味着在每次请求之前,应用都会检查这些内容。这是否会导致服务器问题,服务器可能过载?

1 个答案:

答案 0 :(得分:1)

我不会说它会自己创建一个服务器重载,对于服务器重载你需要很多并发请求和rails有一个开箱即用的数据库连接池,但这会减慢进程因为你在每个请求之前有3个查询,甚至在控制器上做它想要做的事情。

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

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

至于你检查用户是否被禁止,是的,这是你必须检查的方式,也许你可以使用memcached或redis在缓存中使用它,这样它每次都不会直接命中你的数据库。 / p>