PHPの排他処理
必要になって検索したらこれかな?と思ったのでメモ。
PHPで確実性の高いファイルロック(排他処理)方法はないでしょう… - 人力検索はてな
<?php $lockdir='lock'; //ロック用ディレクトリ $interval=30; //何秒待たせるか if(!mkdir($lockdir)){ //ディレクトリ作成に失敗=ロック中 if((time() - filemtime($lockdir) > $interval)){ rmdir($lockdir); if(!mkdir($lockdir)){ exit(); } }else{ echo "あと、" . ($interval - (time() - filemtime($lockdir))) . "秒後にアクセスしてください。"; exit(); } } //〜処理〜 rmdir($lockdir); ?>
30秒かかかる処理中に邪魔が入らないようにするにはこうするのかな?
他の人がアクセスしようとしても処理は行われず、
あとどれくらいかかるかが表示される。
う〜ん、こんなもん?