Amazon Searchの負荷軽減に使用している中継君 Ver1.4.3で、Ver.1.3.0から利用可能になった保存キャッシュの上限設定がうまく動かなかった症状を修正しました。
ソースを見てみると、実際に生成されるキャッシュのファイルの拡張子 ((.datおよび.typ))と、削除しようとするキャッシュのファイルの拡張子 ((.js))が異なっているため、古いキャッシュが削除されないまま、結果新しいキャッシュが生成されないようになってしまっています。
とりあえず、簡単な書き換えでさくっと対応。
$ diff -ur jc.cgi.org jc.cgi --- jc.cgi.org 2006-12-20 20:56:52.000000000 +0900 +++ jc.cgi 2006-12-20 20:59:40.000000000 +0900 @@ -142,8 +142,10 @@ } else { $ch = $erace_cf; - $cache = 'cache/' . $ch . '.js'; - unlink($cache); + my @cache; + push @cache , 'cache/' . $ch . '.dat'; + push @cache , 'cache/' . $ch . '.typ'; + unlink(@cache); # ファイルリスト更新 if ( !open (OLD,"cache/filelist") ) {
しばらく動かしてみた感じでは、古いデータはしっかりと削除され、本来期待される動作になったと思います。
コメント
コメント一覧 (2件)
不具合指摘および修正コードの掲示ありがとうございました。
あんなコードで大丈夫でしたでしょうか。
ともあれ、参考になれば幸いです。