とりあえず動くようにはなったんだけど、せめてRSSのキャッシュぐらいは実装しておかないとRSSの取得先サーバにとって迷惑だ。なんかないかなぁとCPANをガサゴソしてみたらHTTP::Cache::Transparentモジュールが使えそうなので、早速試してみる。
使い方は、
- use LWP::Simple の後にuse HTTP::Cache::Transparent する
- HTTP::Cache::Transparent::init() に設定を渡してモジュールを初期化
- いつも通り LWP で get() する
らしい。…簡単だー。とりあえず追加してみたコード。
$DIR_HTTPCACHE = '/home/doggie/data/rss_cache'; HTTP::Cache::Transparent::init( { BasePath => $DIR_HTTPCACHE, Verbose => 0, MaxAge => 12, NoUpdate => 30 * 60, } );HTTP::Cache::Transparent::init() に渡せるオプションはこれだけ。
- BasePath
キャッシュ領域として使用するディレクトリ - Verbose
冗長出力するかしないか(1 or 0) - MaxAge
キャッシュが生き続ける最大時間(単位:hour) - NoUpdate
最後にキャッシュが更新されてから、実際のHTTP問い合わせを抑制する時間(単位:second)
一発スクリプトを走らせた後にキャッシュディレクトリを見てみると
doggie@elena:~$ ls -l /home/doggie/data/rss_cache/ 合計 28 -rw-r--r-- 1 doggie users 26387 2008-03-31 20:27 6b2b2adb261025db95ada29a0f5dd44dおー、うまく機能している模様。
0 件のコメント:
コメントを投稿