【Perl】ファイルロック(排他処理)について語ろうat PHP【Perl】ファイルロック(排他処理)について語ろう - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト62:nobodyさん 02/06/26 19:08 >>60 flockがロックを解放しないというのは? 63:fusianasan 02/06/26 19:33 >60 全然わかってないねー。まだ気づかないの? 64:「このサイトの人」 02/06/26 19:46 uIGx/rWA >>62 どの程度可能性があるのか分かりませんが、システムコール等が滞って、 プロセスが終了しなくなった状況を想定してみました。単に混んで遅く なってる時に強制終了したらまずいですね。制限時間が1分は短かいかも。 要は、ロックファイルが残った時のように特別な場合です。そういう 方法もあるって事で紹介しましたが、実用性はあまり無いかもしれません。 65:「このサイトの人」 02/06/26 19:57 uIGx/rWA >>63 たしかに、わたしが全然分かってないのかもしれませんが。 下記のどこに問題がありますか? $retry = 5; # リトライ回数セット while (!mkdir($lockdir, 0755)) { # 作成。出来なければ待つ if (--$retry <= 0) { # 5回ダメなら if (mkdir($lockdir2, 0755)) { # ロックを消すための排他 if ((-M $lockdir) * 86400 > 600) { # 作成時間が10分以上前なら rename($lockdir2, $lockdir); # ロック入れ替え last; # 一連の処理へ } else { rmdir($lockdir2); } # 部分ロック削除 } &error("BUSY"); # あきらめる } sleep(1); # 1秒待つ } 1.作成時間が10分以上前なら この隙間には他のプロセスが入れないよう2つ目のロックファイルで排他してある。 2.ロック入れ替え 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch