gpt4 book ai didi

ruby-on-rails - 使用 Rack Cache 时如何跟踪 API 请求数

转载 作者:数据小太阳 更新时间:2023-10-29 07:28:47 26 4
gpt4 key购买 nike

我将使用 Rack Cache(与 Memcache)来缓存来 self 使用 Rails 构建的 API 的响应。此外,我需要为 API 实现命中计数。有什么建议可以解决这个问题吗?我猜它需要用 Rack 来处理,但我不确定从哪里开始。谢谢!

最佳答案

我建议在中间件堆栈的顶部添加一个 Rack 中间件,它会增加请求路径的计数器。

例如,要使用 Redis 执行此操作:

# lib/request_counter.rb
class RequestCounter
def self.redis
@redis ||= Redis.new(host: ENV["REDIS_HOST"], port: ENV["REDIS_PORT"])
end

def initialize(app)
@app = app
end

def call(env)
request = Rack::Request.new(env)
self.class.redis.incr "request_counter:#{request.fullpath}"
@app.call(env)
end
end

# config/application.rb (in the Rails::Application subclass)
require "request_counter"
config.middleware.insert(0, RequestCounter)

这意味着对 /path 的每个请求都会增加 Redis 键 request_counter:/path

关于ruby-on-rails - 使用 Rack Cache 时如何跟踪 API 请求数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18818590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com