我的应用程序控制器中有一些before_filter
要检查1)如果current_user
被禁止,2)如果current_user
收到了新消息,3)如果{ {1}}有任何待处理的好友请求。
这意味着在每次请求之前,应用都会检查这些内容。这是否会导致服务器问题,服务器可能过载?
答案 0 :(得分:1)
我不会说它会自己创建一个服务器重载,对于服务器重载你需要很多并发请求和rails有一个开箱即用的数据库连接池,但这会减慢进程因为你在每个请求之前有3个查询,甚至在控制器上做它想要做的事情。
Facebook在2009年使用他们所谓的BigPipe解决了这个问题,它不是一种新技术,而是利用浏览器和能够通过页面的碎片部分发送一些请求,然后使用一些Javascript组合它。 / p>
您可以在这里阅读http://www.facebook.com/note.php?note_id=389414033919。
至于你检查用户是否被禁止,是的,这是你必须检查的方式,也许你可以使用memcached或redis在缓存中使用它,这样它每次都不会直接命中你的数据库。 / p>