From: <ki...@ki...> - 2003-10-23 05:40:15
|
きたです. > 夕べIRCで言ったことをまとめておきます。 > #コードを書く元気がない……。 行きの新幹線で作ってみました. もうちょっと詰めたいのでパッチは今夜. > * parser_cacheのインタフェースは変えたくない(ioには手を入れたくない) > * ミスヒットかどうかの判断はparser_cache内でした方がよい > * verだけでなくkeyでも判断できるだろう これ,どういうことだったっけ? cache.root?(key) もチェックしようね,ということかな? > * ERbのキャッシュ(*.rb)のクリアにはいろいろな解法があるので(ごにょごにょ) > 1) parser_cache内でclear_cacheを呼ぶ > 2) parser_cache内でフラグを立てておいて、cache_anable?内で判断 > キャッシュがヒットしなかった場合に、わざわざファイルを消す必要はないよ > な、と考えているので2)案みたいな方向性の方がよいかなぁ。 2 は結構キビしいかも. たとえば10月に入ったばかりなのでlatest には10月分と9月分が表示されると想定. 0.latest 表示のリクエストがくる. 1.まずは 200310.parser を読み込んで無効だと判断.フラグを立てる. → 最終的には新しい 200310.parser が保存される. 2.つぎに 200309.parser を読み込んで無効だと判断.フラグを立てる. → 最終的には新しい 200309.parser が保存される. 3.フラグが立ってるので latest.rb は無効だと判断. → 新しい latest.rb が保存される. (ここからは別リクエストなので別プロセス) 4.次に2003年10月分の表示のリクエストがくる. 5.200310.parser をチェック.1 で新しい 200310.parser が保存されてるの でフラグは立たない. 6.フラグが立ってないので 200310.rb は有効なまま. ってな感じ. 今つくってるのは 1 の方でやってます. > * ERbキャッシュの排他はしましょう。 これも一応対策してるつもり. 漏れがないようにしなければ. |