Python で排他ロック
2007-08-11 作成 福島
2020-08-08 更新 福島
2022-11-22 更新 福島
TOP > cgi > python-exlock
[ TIPS | TOYS | OTAKU | LINK | MOVIE | CGI | AvTitle | ConfuTerm | HIST | AnSt | Asob | Shell ]

排他ロックなんて、いまさら公開するまでも無いですが、無くすたびに思い出すのが面倒なのでここに書いておきます。
ちなみに、ロックファイルにはディレクトリを使用しているので Unix、Windows を問わず使えます。
商用/非商用を問わず、自由にコピーして使ってください。

最近、サーバにも SSD を使うことが増えてきました。
SSD のシステムではストレージに負荷をかけないよう、ロックファイルの保存先として
Linux では tmpfs を、Windows では RAM ディスクを使用してください。


exLock.py 文字コードは UTF-8 です。

使い方は、./lock_tmp/ (777) というディレクトリを作成したとして、こんな感じ

import exLock

lock = exLock.exLock("./lock_tmp/lockDir.LCK")

lock_success = lock.lock()
if lock_success == True:

	'''ロック中に実行する処理'''

lock.unlock()          # --- 通常は書かない (A)

(A) は CGI の場合、プロセスの終了時にデストラクタが呼ばれるので、書く必要が無いという意味です。
正確には、スコープが切れるときにデストラクタが呼ばれます。
まあ、プログラムを見ればすぐに分かりますね。