※ ChatGPTを利用し、要約された質問です(原文:ロックファイルの自動削除)
ロックファイルの自動削除
このQ&Aのポイント
ロックファイルの自動削除の方法についてご教示ください。
2秒後の投稿時にロックファイルを自動削除し、投稿を可能にする方法を教えてください。
現在、ロックされてから2秒後に解除されるはずのロックファイルが存在するエラーメッセージが表示されてしまいます。これを解決する方法を教えてください。
現在、以下のように記述されており、
ロックされてから2秒後に解除されるはずが
2秒後の最初の投稿の際にはロックファイルが存在している旨のメッセージが表示され、
(その際にロックファイルが自動削除されるが投稿はできない)
その次の投稿から投稿が可能になるのですが、
2秒後の投稿の際にそのロックファイルを自動削除し、
投稿もできるようにするにはどのように書きかえたらいいのかお教えいただけませんか?
## --- ファイルロック
sub lock {
if ($_[0]) { $lock_file = $_[0]; } else { $lock_file = $lockfile; }
if ($lock_file ne "") {
local($flag) = 0;
foreach (1 .. 5) {
if (-e $lock_file) { sleep(1); }
else {
open(LOCK,">$lock_file");
close(LOCK);
$flag = 1;
last;
}
}
if ($flag == 0) {
$past_lock = -M "$lock_file"; if ($past_lock * 24 * 60 * 60> 2) { &unlock("$lock_file"); }
&error("システムエラー","アクセスが集中しているため、タイムアウトとなりました。(ロックファイルが存在しています)");
}
}
}
## --- ファイルロック解除
sub unlock {
if ($_[0]) { $lock_file = $_[0]; } else { $lock_file = $lockfile; }
if (-e $lock_file) { unlink($lock_file); }
}
お礼
遅くなってしまい、申し訳ありません。 おかげさまで無事にきちんと希望通りにやることができました! どうもありがとうございました!