中継君の古いキャッシュが削除されないバグの修正

Amazon Searchの負荷軽減に使用している中継君 Ver1.4.3で、Ver.1.3.0から利用可能になった保存キャッシュの上限設定がうまく動かなかった症状を修正しました。

ソースを見てみると、実際に生成されるキャッシュのファイルの拡張子1と、削除しようとするキャッシュのファイルの拡張子2が異なっているため、古いキャッシュが削除されないまま、結果新しいキャッシュが生成されないようになってしまっています。

とりあえず、簡単な書き換えでさくっと対応。

$ 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") ) {

しばらく動かしてみた感じでは、古いデータはしっかりと削除され、本来期待される動作になったと思います。

  1. .datおよび.typ []
  2. .js []