初めての主要な Django アプリをデプロイしていますが、キャッシュに関するアドバイスが必要です。
私のサイトでは、Google の Analytics API を使用して、サイト内の「人気のあるコンテンツ」のリストを表示しています。これらの API 呼び出しは遅い (2 ~ 5 秒) ため、結果を 1 時間キャッシュします。次に、15 分ごとに実行され、Google からのデータを再要求する cron ジョブがあります。これを 1 時間キャッシュして 15 分ごとに更新するのは少し奇妙に思えるかもしれません。
サイトのメイン出力を数時間キャッシュします (それ以上の頻度で更新することはありません)。もちろん、これは、「人気のあるコンテンツ」をレンダリングするテンプレートの部分は、API を頻繁に呼び出しても、その期間中に更新されないことを意味します。
Django のテンプレート タグを調べて{% cache %}
、「人気のあるコンテンツ」テンプレート ビューを最小限にキャッシュされたラッパー (テスト用に 1 秒のキャッシュ時間) 内にラップしようとしました。これは機能します (手動で Google API を呼び出してページをリロードすると、テンプレートが変更されます)、意図したとおりに機能するかどうかはわかりません。基本的に、ページ全体をキャッシュしたくない数秒 (むしろ数時間) かかりますが、Google から新しいデータを取得したときに更新したいと考えています。
ここで正しい方向に誰かが私に微調整を与えることができますか?