AmazonAPIの制限、「キャッシュの最大保存期間」の制御方法

以前の記事を見直してたら「自分バカだなぁ…」と思う事があったので、書いてみる。

気になったのは…

データへのアクセス時にキャッシュの最終時刻チェック

24時間を超えていた場合はキャッシュを更新

これだとアクセスの少ないサイトの場合、厳密には24時間を超えてキャッシュを保持している事になってしまうだろうし…。
中略
cronとかでデータ更新用のプログラムを起動するにしても、レンタルサーバとかを利用する場合、データ数が多い場合は起動を分けてやらないと、実行時間でプロセス落ちたりしそうだよね。
アマゾンAPIを利用してみようと思ったんだけど・・・。利用制限が気になった。

これって別に商品単位で1時間毎にキャッシュ更新する必要なんて「全く無い」よね。
AmazonAPIのガイドラインで制限されているのはあくまで「キャッシュを”保存”できる時間」なわけで、リクエストも無いのに「キャッシュを常に最新の状態に保つ」必用無いよなー・・・と。

 
結局、以下のようにする事で解決する気がする。

商品情報の出力は、

商品ページにアクセスがある

キャッシュテーブルに商品データが存在するかをチェック

キャッシュが存在する場合はキャッシュから出力・キャッシュが存在しない場合はAPIで取得し出力後、取得したデータと現在時刻をキャッシュテーブルに格納。

という処理のみにする。
あとはCronとかで以下のような処理を実行するだけ。

キャッシュテーブルのキャッシュ保存日時をチェック

最大キャッシュ保存時間を超えそうなキャッシュレコードを削除

以上。

スッキリした。

2010年11月05日  タグ:,

Leave a Reply