4

私はRoR 3.2.3ウェブサイトを持っています。の Web サービスを呼び出してflickr.com、私の写真のリストを取得します。しかし、それは本当に問題ではありません。

要点は、毎回要求を行うということです。訪問者が私の Web サイトに来るたびに、の Web サービスを呼び出しflickr.comて写真のリストを取得します。flickr明らかに、約 5 時間の応答をキャッシュしたいと思います。私に関する限り、それで十分でしょう。

どうすればそれができますか?それに対する良い方法または最善の方法、または一般的なアプローチは何ですか? 多分あなたはそれを作る方法のリンクを持っていますか?

PSデータベース対応の5Mb付きの無料料金プランを利用しています。ただし、必要に応じて、他のホスティング事業者に移行できます。heroku.comPostgreSQL

4

2 に答える 2

13

Memcached は、開始するのに適したオプションです。Heroku には無料で組み込まれています (5 MB)。セットアップガイドはこちら

$ heroku addons:add memcache
$ vim Gemfile
  gem 'dalli'
$ vim config/environments/production.rb
  config.cache_store = :dalli_store
$ heroku console
  Rails.cache.stats

次に、高価な API リクエストを Rails.cache ブロックにラップできます。以下のコードを参照してください。

class Flickr
  def self.cached_request
    Rails.cache.fetch "photos", :expires_in => 5.minutes do
      flickr.photos.getRecent
    end
  end
end

次に、キャッシュを使用するには、実行するだけです

Flickr.cached_request

API リクエストを起動し、5 分間キャッシュします。

于 2012-07-03T09:53:46.210 に答える
2

キャッシュをどのように機能させるかによって異なります。通常、memcachedまたはredisストアが適しています。どちらもherokuで実行されます。

キャッシングのガイドをご覧くださいhttp://guides.rubyonrails.org/caching_with_rails.html

于 2012-07-03T09:33:34.637 に答える