2009-06-26 9 views
0

"ブログ"スタイルの投稿を持つレール上にランディングページがあります。それはサイトで最も訪問されたページなので、私はアクションキャッシングを使用しています。モデルの変更時にキャッシュがクリアされます。アクションキャッシングと待ち行列に入れられた投稿

しかし、新しいブログ投稿を追加するときには、--future--(Tumblrの投稿待ち行列)に投稿を作成したいと思っています。

モデルを観察するだけで、キャッシュをクリアすることはできません。

定期的に(30分おきに)実行する以外に、キャッシュを正しくクリアする方法はありますか?

答えて

0

有効期限のあるキャッシュを使用できます。キャッシュバックエンドがMemcachedの場合、この機能はデフォルトでサポートされています。それ以外の場合は、定義された時間が経過するとキャッシュを失効させる値を含むキャッシュキーを作成する必要があります。

また、別の方法もあります。 publied_at < Time.now(現在の動作がこのケースに該当すると仮定しています)のレコードを公開する代わりに、cronを実行してステータスデータベースフィールドを更新できます。このようにして、更新によってスイーパーが起動され、キャッシュがクリアされます。

実際には最初の解決策が最適です。