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,但是系统中运行的时候只能有一个进程),当然基于分布式锁也是一种选择,但是相比有点重,基于文件锁是一个很不错的选择

参考资料

https://py-filelock.readthedocs.io/en/latest/index.html#

https://github.com/tox-dev/filelock

posted on 2024-11-12 08:00  荣锋亮  阅读(8)  评论(0编辑  收藏  举报

导航