2

私は、Rails アプリ、より具体的にはメインのダッシュボード ページでロシアン ドール フラグメント キャッシングを試してきました。これは、ユーザーがログインした後に最初に表示されるページであり、多くのネストされた要素が含まれているため、Russian Doll の有力候補です。

キャッシュは、アプリがダッシュボードを再レンダリングする必要がある変更をユーザー自身が行う状況でうまく機能します。キャッシュを使用した読み込み時間は、ページ全体をレンダリングするよりも約 4 倍高速です。

ただし、システムによってデータが変更される場合があります。たとえば、毎晩、前日の新しい為替レートですべての値を更新します。これにより、ダッシュボードのほとんどのフラグメントが自動的に期限切れになり、翌朝、ユーザーはログイン時にコールド キャッシュにヒットします。

これらのフラグメント キャッシュをウォーム状態に保つために、システム アップデート後にこれらのフラグメント キャッシュを再生成することは可能ですか? システムの更新後に手動でフラグメントを作成できると思いwriteますが、キーと依存関係も手動で管理する必要があります。(私は現在cache_digest非常に便利なgemを使用しています。)

何か案は?

4

2 に答える 2

0

すべては cache_key に依存します。cache_key は、モデル ID、updated_at 属性、および html テンプレートの md5 に基づいています。したがって、これら 3 つのキーのいずれかを変更すると、キャッシュが期限切れになります。

データがどれほど複雑かはわかりませんが、メインの AR::model で touch メソッドを使用して、キャッシュ キーを変更することができます。おそらく、他のレコードが依存しているメインの AR::model があるとします。

于 2013-05-03T03:37:07.290 に答える