2009-08-04 8 views
5

ウェブアプリケーションに依存しない、何らかの形でレールアプリケーション内で帯域幅を管理できる方法を知っている人がいるかどうかは疑問でした。たとえば、各アカウントには帯域幅の制限があります。出入り口の交通量は、毎月の手当から差し引かれますか?その後、ユーザーことを確認before_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 

+0

これは、ログファイルの解析に関連すると思われますが、Splunkのように見えますが、予算上に何かが必要です。おそらくプロダクションログファイルアナライザの宝石ですか? – bwizzy

答えて

4

1つのオプションは、(それはすべてのアクションに適用されるように)application.rbにafter_filterを追加し、次の操作を行うことであろう割り当てられた帯域幅を超えていない場合は、アクセスを拒否する必要があります。

これは、レールサーバーにヒットしたリクエストの場合にのみカウントされます。フロントエンドサーバーで埋められたリクエスト(画像など)は含まれません。