7

rails 应用程序 (4) 使用 HTTParty 调用外部 API。API 是只读的。需要缓存,因为数据不会经常更改(24 小时),并且 API 每小时只允许有限数量的调用。

我想我需要某种基于哈希的缓存,我将使用“params/sent/to/the/api”作为键。用于缓存的 Rails 工具似乎仅适用于页面、片段或 SQL。

我应该怎么做才能缓存对外部 API 的调用?

4

1 回答 1

13

会是这样的。基本上,Rails.cache.fetch 调用将包装您的 API 调用。除非缓存过期,否则它不会命中 API。

class Results

  def get(url, params)
    Rails.cache.fetch([url, params], :expires => 1.hour) do
      HTTParty.get('url/to/api')
    end
  end

end

确保在您的环境中设置了缓存。Memcache 非常适合这类事情。

于 2013-11-06T19:37:09.660 回答