02/06/23 11:48
flock(対象ファイルを直接ロック)
ファイルロック関数flockを使用して対象のファイルを直接ロックする。
特徴
・速い。
・アンロックし忘れが無い。
・ファイル毎のロックに便利。
・処理全体をロックする場合には不向き。
・flockが使えない環境もある。
flock(ロック用ファイルをロック)
ファイルロック関数flockを使用して別途用意したロック用ファイルをロックする。
特徴
・速い。
・アンロックし忘れが無い。
・処理全体をロックする場合に便利。
・ロック用ファイルが常に残る。
・サーバーによってflockが使えない場合がある。
symlink
シンボリックリンク関数symlinkを使用してロック用のシンボリックリンクを作成し、 シンボリックリンクの有無によりロック状態を判断する。
特徴
・遅い。
・ロックしたままの状態(ロック用シンボリックリンク)が残る可能性がある。
・処理全体をロックする場合に便利。
・サーバーによってsymlinkが使えない場合がある。
mkdir
ディレクトリ作成関数mkdirを使用してロック用のディレクトリを作成し、 ディレクトリの有無によりロック状態を判断する。
特徴
・遅い。
・ロックしたままの状態(ロック用ディレクトリ)が残る可能性がある。
・処理全体をロックする場合に便利。
・どの環境でも使用できる。
flock(対象ファイルを直接ロック)
ファイルロック関数flockを使用して対象のファイルを直接ロックする。
特徴
・速い。
・アンロックし忘れが無い。