2006-06-19
■[PLAGGER]EntryFullTextのキャッシュを自動削除#2
めざせchangeset/1000ということで、ここで公開したEntryFullTextのキャッシュを自動削除するパッチを更新して見ました。以前のパッチではpurgeが頻繁に発生し、キャッシュが増える以上に負荷が酷かったと思います。
そこでpurgeするタイミング(確率)を指定できるようにしてみました。
タイミング(確率)といっても、time % probabirity == 0な場合ですので過度な期待は禁物ですが、購読しているFeedの数が多くて、キャッシュサイズが気になる人には有用だと思います。いつかは削除されますので。
ちなみに、Ticket#306に別方法で登録されていますので、それまでのつなぎです。
Index: svn/plagger/lib/Plagger/Cache.pm
===================================================================
--- svn/plagger/lib/Plagger/Cache.pm (リビジョン 941)
+++ svn/plagger/lib/Plagger/Cache.pm (作業コピー)
@@ -14,6 +14,7 @@
$conf->{class} ||= 'Cache::FileCache';
$conf->{params} ||= {
cache_root => File::Spec->catfile($conf->{base}, 'cache'),
+ default_expires_in => $conf->{expires} || 'never',
};
$conf->{class}->require;
@@ -28,6 +29,7 @@
my $self = bless {
base => $conf->{base},
cache => $conf->{class}->new($conf->{params}),
+ probabirity => $conf->{probabirity} || 100,
}, $class;
}
@@ -55,6 +57,10 @@
my $hit_miss = defined $value ? "HIT" : "MISS";
Plagger->context->log(debug => "Cache $hit_miss: $_[0]");
+ if (time % $self->{probabirity} == 0) {
+ $self->{cache}->purge();
+ Plagger->context->log(info => "Cache purge");
+ }
$value;
}
設定は以下の通り
global:
cache:
expires: 604800
probabirity: 100
上記の設定では、1週間(expires:604800=60*60*24*7)経ったキャッシュを削除登録し、100回キャッシュを検索(probabirity:100=1%)したときに、1度削除登録されたキャッシュを削除します。
トラックバック - http://d.hatena.ne.jp/s_nobu/20060619/1150709563
リンク元
- 13 http://www.google.co.jp/search?q=Firefox+キャッシュ クリア&start=0&hl=ja&lr=lang_ja&ie=utf-8&oe=utf-8&client=firefox&rls=org.mozilla:ja:official
- 12 http://www.google.co.jp/search?q=plagger+cache&lr=lang_ja&ie=utf-8&oe=utf-8&rls=org.mozilla:ja:official&client=firefox
- 12 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2003-49,GGLD:ja&q=キャッシュ 自動削除
- 8 http://plagger.org/trac/ticket/306
- 8 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=1j7&q=firefox+キャッシュ+削除+自動&btnG=検索&lr=lang_ja
- 8 http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-11,GGGL:ja&q=Plagger キャッシュ
- 7 http://www.google.co.jp/search?hl=ja&q=firefox+キャッシュ 削除&btnG=Google+検索&lr=
- 7 http://www.google.co.jp/search?hl=ja&q=plagger+cache&btnG=Google+検索&lr=
- 6 http://b.hatena.ne.jp/t/EntryFullText
- 5 http://search.hatena.ne.jp/search?word=キャッシュ 削除 はてな&site=&from=
