[過去ログ] bbs.cgi再開発プロジェクト 3 (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
112(2): 動け動けウゴウゴ2ちゃんねる 04/02/25 21:53 ID:6mZyPruH(1/6) AAS
一応こちらで。
2chの動作報告はここで。 パート10
2chスレ:operate
528 :FOX ★:04/02/25 21:44 ID:???
問題は処理の順番というか・・・
1) bbs.cgi の中盤で dat に追記
2) bbs.cgi の後半で subject.txt を書き換え
3) この時 dat 内のレス数カウント
4) ついでに 1,000 超え判定 → 1,001 書き込んでパーミッション変更
5) しかし既にこのときには次のbbs.cgiが目前までせまっているらしい。
省5
113: /ノ、゚ ヮ゚ノ、,ヽ ◆HEHARUKAoo 04/02/25 22:01 ID:jxRad/Uw(7/7) AAS
>>112
最初は1000超え判定ルーチンがなかったんだよね?
あとからとりあえず後ろにくっつけてみた、って感じじゃないかな。
114(2): 動け動けウゴウゴ2ちゃんねる 04/02/25 22:06 ID:6mZyPruH(2/6) AAS
>>112
529 :FOX ★:04/02/25 21:47 ID:???
dat のopen , close で行くと、
1) 512 超え判定、超えていたらDispError();
2) 追記のために open -> write -> close
3) subject.txt 書き換えのために res数取得 open -> read -> close
4) 超えていたら 1,001 書き込み open -> write -> close ->chmod
これなら、
open(+<);# 読み書き(追記用)両用フラグを与える
write;
省5
115: 動け動けウゴウゴ2ちゃんねる 04/02/25 22:08 ID:6mZyPruH(3/6) AAS
>>114
あ、まちがいた・・・ ○| ̄|_
×if(over 1000){ white; close; chmod};
○if(over 1000){ write; close; chmod};
116(1): サザン ★ 04/02/25 22:10 ID:??? AAS
4) のところで、
A) 999以上で書き込めるの?
B) んじゃdatに1000ストッパー追記しよう
C) んでもって、パーミッション切っちゃおう
D) おしまい
となってます。
B) に詰まっちゃって、A) をすり抜けてきちゃうのがたくさんできる予感。
117(3): 仕事人 ★ 04/02/25 22:11 ID:??? AAS
>>114
まさしく dat 追記する瞬間だけど
open(OUT, ">>$DATAFILE");
print OUT "$outdat\n";
close(OUT);
ここで dat 数を数えて DispError() するってこと?
そのあとで subject.txt を書き換えるときに
また dat数数えるってこと ?
118: サザン ★ 04/02/25 22:12 ID:??? AAS
>>116
あ、A) は
A) 1000以上で書き込めるの?
だ。
119(2): ▲ 某ソレ511 04/02/25 22:12 ID:XARNcXSJ(1) AAS
でも、実際の1000大幅超えスレでは、1000ストッパーが何回も書き込まれているのに
その後から書き込みしたレスも書き込めちゃってるんだよね。
だから、Bに詰まっちゃってるのはないんじゃないかな。。
120: サザン ★ 04/02/25 22:15 ID:??? AAS
>>119
datへの書き込み後に1000越え判定するんで、有り得ないこともないですね、
121(2): 仕事人 ★ 04/02/25 22:15 ID:??? AAS
512kB 超えの判定は bbs.cgi のかなり序盤
ここだとうまく行くから ここで dat数も数える?
んで数を保持しておいて、、、
後半の subject.txt 書き換え部分でその数使う?
すでにずれている予感もするのだが、、
ピーク時 bbs.cgi は 20回/sec くらい呼ばれているぞ
それも同じ subject.txt に対して
122(3): 動け動けウゴウゴ2ちゃんねる 04/02/25 22:18 ID:HY3kIJLP(1/4) AAS
>>117
こういうことでは?
open(OUT, $DATAFILE, "a+");
print OUT "$outdat\n";
@logdat = <OUT>;
if (scalar @logdat > 999) {
print OVER "1001<><>Over 1000 Thread<>このスレッドは1000を超えました。 <br> もう書けないので、新しいスレッドを立ててくださいです。。。 <>\n";
close(OUT);
chmod(0555, $DATAFILE);
} else {
省2
123: 動け動けウゴウゴ2ちゃんねる 04/02/25 22:19 ID:6mZyPruH(4/6) AAS
そう、だから1000越え判定をdat追記前にもってこようと。
>>121
50ms以下ですか・・・かなりきついですね。
124: 動け動けウゴウゴ2ちゃんねる 04/02/25 22:24 ID:6mZyPruH(5/6) AAS
>>121
openのコストよりstatのほうがちいさいのであればそれてもいいかと。
125(1): 動け動けウゴウゴ2ちゃんねる 04/02/25 22:28 ID:ZuAN1eHT(1/3) AAS
WebProg板にも張らないの?
126: 動け動けウゴウゴ2ちゃんねる 04/02/25 22:32 ID:6mZyPruH(6/6) AAS
そういえばbbs.cgiのcputimeってどのくらいです?
それ如何によってはある程度のdat(レス)数(の意でいいのだろうか)で
filelockかけるっていうことも視野に入れてもいいかなと。
まちがいなく1000近くになれば重たくなりますが、
over 1000の膨大なdisk I/Oでリソースを食うよりはましかと。
# peko級でcputimeが50ms程度でおさまっていればいいのですが・・・。
127(1): 動け動けウゴウゴ2ちゃんねる 04/02/25 22:42 ID:HY3kIJLP(2/4) AAS
前にも書いたけど、1000レス制限は本当に必要なんだろうか……。
サイズ制限だけでも間に合うんじゃないだろうか……。
128(1): 動け動けウゴウゴ2ちゃんねる 04/02/25 22:58 ID:1YZTD+xC(1) AAS
>>127
いつ書き込みできなるのか分からないし、
次スレを作るタイミングも分からないし、
とにかくユーザにとって使いづらいというかイライラすることは間違いない。
129: 動け動けウゴウゴ2ちゃんねる 04/02/25 23:05 ID:HY3kIJLP(3/4) AAS
>>128
いつ書き込みできなくなるかについては、レス数のかわりにスレサイズを見るようになり、それがあたりまえになるんでは?
AA系なんかだと「450K超えたからそろそろ次スレ」なんてのはあたりまえだし。
130: 動け動けウゴウゴ2ちゃんねる 04/02/25 23:20 ID:ZuAN1eHT(2/3) AAS
レス番号は左に確実に表示されているからどんなバカでも一目瞭然だけど。
datサイズは分からない人がたくさんいる。
131: 動け動けウゴウゴ2ちゃんねる 04/02/25 23:24 ID:HY3kIJLP(4/4) AAS
はて。「サイズがxxxKBを超えています。512KBを超えると表示できなくなるよ。 」というメッセージは大きく表示されるけど。
上下前次1-新書関写板覧索設栞歴
あと 870 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.165s*