2009-08-04 32 views
5

我想知道是否有人知道你可以用一种不依赖于Web服务器的方式在Rails应用程序中管理带宽的方式。例如,每个帐户都有带宽限制。出入限制流量是否从每月津贴中扣除?带导轨的带宽管理?

+0

我猜这将与分析日志文件有关,看起来像Splunk可以肯定,但我需要一些预算。生产日志文件分析器宝石也许? – bwizzy 2009-08-04 13:11:30

回答

4

一种选择是在application.rb中添加after_filter(使之适用于所有的行动),并执行以下操作:

def store_bandwidth_usage 
    response_size = response.body.size 
    # Assuming the User model has a bandwidth_usage attribute 
    @current_user.increment!(:bandwidth_usage, response_size) 
end 

当然,那么你就需要检查哪一个用户的before_filter没有超过他们分配的带宽,否则他们应该被拒绝访问。

请记住,这只会计入撞击rails服务器的请求,任何由前端服务器填充的请求(例如图像)都不会包含在内。