py-filelock python 平台无关的文件锁
py-filelock 是一个平台无关的文件锁实现,可以用来实现一些基于文件锁的业务控制
参考使用
- lock.py
import os
from filelock import Timeout, FileLock
file_path = "high_ground.txt"
lock_path = "high_ground.txt.lock"
lock = FileLock(lock_path, timeout=1)
with lock:
if not os.path.exists(file_path):
with open(file_path, "w") as f:
f.write("Hello there!")
lock.acquire()
try:
if not os.path.exists(file_path):
with open(file_path, "w") as f:
f.write("General Kenobi!")
finally:
lock.release()
说明
py-filelock 还提供了其他模式的lock,使用好lock 可以解决一些因为并发或者多进程运行的问题(比如我们一些业务场景可能需要多worker,但是系统中运行的时候只能有一个进程),当然基于分布式锁也是一种选择,但是相比有点重,基于文件锁是一个很不错的选择