1

Google Calendar APIからのデータを表示するエンタープライズ ポータルで使用するための適切なキャッシュ アプローチが必要です。どのアルゴリズムまたは設計パターンが最も適していますか?

Google カレンダー API は、1 日あたりのリクエスト数 (デフォルトは 10,000 リクエスト/日 - 私はそれ以上をリクエストしました) とアクセス レート ( 5 リクエスト/秒/ユーザー) によって制限されています。

使用するコア API メソッドは 2 つあります。1 つはユーザー カレンダーのリストを取得するためのもの( 1 API ヒット) で、もう 1 つは個々のカレンダーのイベントをダウンロードするためのものです(カレンダーごとに 1 API ヒット)。

カレンダー リストと個々のカレンダーの両方に、不必要な API リクエストを回避するために使用できるetag値が含まれています。個々のカレンダーのetag値のリストがある場合、カレンダー リストを照会するだけで、これらのいずれかが変更されたかどうかを確認できます。(残念ながら、HTTP 304 Not Modified応答は引き続き API ヒットとしてカウントされます)。

また、カレンダーの内容全体をダウンロードしてキャッシュしたくはありません (したがって、一度に数日または数週間だけかもしれません)。

API 呼び出しの数を最小限に抑えようとするが、すべてを保存しようとしないアプローチを見つける必要があります。また、カレンダー データの「タイム スライディング ウィンドウ」が移動したため、変更されていないカレンダーから時折データをフェッチすることにも対処できる必要があります。複数のポータル インスタンスが同じデータを共有できるように、データ ストレージによってシステムをサポートしたいと考えています。

4

0 に答える 0