【发布时间】:2009-08-04 11:03:52
【问题描述】:
我想知道是否有人知道一种方法可以在 Rails 应用程序中以某种不依赖于 Web 服务器的方式管理带宽。例如,每个帐户都有带宽限制。进出流量从每月津贴中扣除?
【问题讨论】:
-
我猜这将与分析日志文件有关,看起来 Splunk 可以肯定地做到这一点,但我需要一些预算。可能是生产日志文件分析器 gem?
我想知道是否有人知道一种方法可以在 Rails 应用程序中以某种不依赖于 Web 服务器的方式管理带宽。例如,每个帐户都有带宽限制。进出流量从每月津贴中扣除?
【问题讨论】:
一种选择是在 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 服务器的请求进行计数,任何由前端服务器填充的请求(例如图像)将不包括在内。
【讨论】: