排他ロックなんて、いまさら公開するまでも無いですが、無くすたびに思い出すのが面倒なのでここに書いておきます。
ちなみに、ロックファイルにはディレクトリを使用しているので Unix、Windows を問わず使えます。
また、以前掲載した Python 用排他ロックと連携することもできます。
商用/非商用を問わず、自由にコピーして使ってください。
最近、サーバにも SSD を使うことが増えてきました。
SSD のシステムではストレージに負荷をかけないよう、ロックファイルの保存先として
Linux では tmpfs を、Windows では RAM ディスクを使用してください。
exLock.php
HTML で記述しています。
リンク先を表示し、テキストをコピーして使ってください。
使い方は、./lock_tmp/ (パーミッション: 777) というディレクトリの中にロックファイルを作成すると仮定して、こんな感じ
(A) は CGI の場合、プロセスの終了時にデストラクタが呼ばれるはずが、
require_once('./exLock.php') ; $lock = new exLock("./lock_tmp/lockDir.LCK") ; $lock_success = $lock->Lock() ; if ($lock_success == True) { // ロック中に実行する処理 } $lock->UnLock() ; // -- 必須 (A)