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

このページは約 2分14秒で読めます。

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 []
スポンサーリンク

Trackback URL

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

Still quiet here.

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

  1. 不具合指摘および修正コードの掲示ありがとうございました。

  2. あんなコードで大丈夫でしたでしょうか。
    ともあれ、参考になれば幸いです。