7

Rails アプリ (4) は、HTTParty を使用して外部 API を呼び出します。API は読み取り専用です。データは頻繁に (24 時間) 変更されず、API は 1 時間あたりの限られた数の呼び出ししか許可しないため、キャッシュが必要です。

「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 に答える