M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2004年10月19日 11:55

jsRSS++ 2.0β、そのままではサーバに負荷をかける不具合あるよ。

このエントリーをはてなブックマークに追加 mixiチェック

パソコン・インターネットのアイコンhttp://cl.cocolog-nifty.com/dtp/2004/10/i_knowrss.html#c885236

I know. 開発です。
ご利用ありがとうございます。
jsrss++ を設置しているサーバーから平均して 5 分間隔で rss が取得されています。間隔にはばらつきがありますので、表示の度に取得されていると思われるのですがどうでしょう?
今一度設定や設置状況をご確認ください。

とのことで、調べていたら、jsRSS++ 2.0β [daikoku-ya.org] に不具合があることが発見されました。

不具合

設定した時間よりも頻繁に http で RSS を取得する。具体的には、デフォルトの 60 分で設定してあっても、アクセス間隔が120秒以上空くと、http で RSS を取得する。

それによって、http 取得先のサーバに負荷がかかり、迷惑をかけることになる。

原因

jsRSS++ 2.0β 内にミスが見つかりました。

my $check = 60;     # 更新間隔(分)
とありますが、スクリプトのなかでの時間の単位は、秒なので、
my $checktime = 60 * $check;
としています。しかし、
if(-e $file && ($last_mod + $check) > $now)
となっているので、ダメダメです。

対策

my $last_mod = (stat $file)[9] + $check;
if(-e $file && ($last_mod + $check) > $now)

my $last_mod = (stat $file)[9];
if(-e $file && ($last_mod + $checktime) > $now)

と直します。

補足

オリジナルは、

my $now = (time);
my $checktime = 60 * $check;
my $last_mod = (stat $file)[9] + $check;


if(-e $file && ($last_mod + $check) > $now)
{...
となっています。変数名から推測するに、2回 $check を足す必要はないので、2箇所直しました。大黒屋本舗様には、Trackback しておきました。

パッチ:jsrss2beta.patch (533 byte)

投稿 大野 義貴 [RSS] | |

トラックバック(1)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/460

I know. の出力する RSS を 大黒屋本舗 さんの jsrss++ で使用した際に特定条件下で文字化けが起こるようです。jsrss++ で使用されている... 続きを読む

コメントする