2009-08-04 57 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服務器的請求,任何由前端服務器填充的請求(例如圖像)都不會包含在內。