[過去ログ] bbs.cgi再開発プロジェクト 3 (1001レス)
前次1-
抽出解除 必死チェッカー(本家) レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
196
(1): ◆garnetGnNk 04/02/27 10:48 ID:5SP01m4Q(1)調 AAS
突貫工事で一番簡単な方法。

#DATを書き込む前に
open(FILE, '>> ../$FORM{'bbs'}/dat/$FORM{'key'}.idx');
print FILE '1';
close(FILE);

# レス数取得
$res = -s '../$FORM{'bbs'}/dat/$FORM{'key'}.idx';

# DAT書き込み
open(FILE, '>> ../$FORM{'bbs'}/dat/$FORM{'key'}.dat');
print FILE ""; #適当に
if ($res >= 1000) { #レスが1000超えてるときは1000ストップ
print(FILE "1000 over ...");
close(FILE);
chmod(0444, '../$FORM{'bbs'}/dat/$FORM{'key'}.dat');
} else { #通常は何もせずクローズ
close(FILE);
}

突貫だけあってその後いろいろめんどくさいです。
205
(2): ◆garnetGnNk 04/02/28 02:38 ID:a22kVdoK(1/3)調 AAS
よし。レス数はctimeにやらせよう。
1970/1/1 9:0:1 が1レス目ってことで。
するとアレアレ。
subject.txtなんて/bbs/datみるだけであっという間にできちゃったりアレアレ。

flockなんて過去の遺物です。
1000のプロセスが全て並行で動いていることを想定して考えないと。
207: ◆garnetGnNk 04/02/28 02:52 ID:a22kVdoK(2/3)調 AAS
今1000ストップが遅れてるのってあれでしょ?
dat書き込んだあとに/bbs/html/*.htmlからレス数とって、
1000ストップ判定するっていう処理だったかな。
うるおぼえ。

まず、DATに書く前に1000ストップ判定すべきですよ。
これだけでかなり違うかと。
処理順で言えば、DATを書き込む処理からエラーを吐いちゃいけないので、
DATを開くときにエラーにすればいいんじゃないすか?
208
(1): ◆garnetGnNk 04/02/28 02:59 ID:a22kVdoK(3/3)調 AAS
んで、実際書けない時のエラーはずーっと上の方でやっちゃっているわけで、
間の処理が長くていっぱいかけるわけですよ。
「開く前に調べる」
これだけではないかと・・・。

それと、bbs.cgiを作り直すなら、設計からやるように(す
775: ゆうゆう ◆garnetGnNk 04/04/14 06:05 ID:154T0ZtH(1)調 AAS
>729
そんなしょぼいコードを参考にしたら2ちゃんねるは壊滅しますよ、と。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.027s