Rails で構築している API からの応答をキャッシュするために、Rack Cache (Memcache を使用) を使用します。さらに、API のヒット カウントを実装する必要があります。これをやってのけるための提案はありますか?Rackで処理する必要があると思いますが、どこから始めればよいかわかりません。ありがとう!
質問する
847 次
2 に答える
5
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
于 2013-09-16T02:50:14.217 に答える