提高fcntl.flock的使用率

flockcontext的Python项目详细描述


https://img.shields.io/travis/AntoineCezar/flockcontext.svghttps://img.shields.io/badge/docs-latest-brightgreen.svghttps://img.shields.io/coveralls/AntoineCezar/flockcontext.svghttps://img.shields.io/pypi/v/flockcontext.svg

提高了fcntl.flock的使用率。

flock是用于file locking的unix命令, 控制文件访问限制的机制。

用法

专用锁:

from flockcontext import FlockOpen

with FlockOpen('/tmp/my.lock', 'w') as lock:
    lock.fd.write('Locked\n')

具有1秒超时的独占阻塞锁:

from flockcontext import FlockOpen

with FlockOpen('/tmp/my.lock', 'w', timeout=1) as lock:
    lock.fd.write('Locked\n')

专用无阻塞锁:

from flockcontext import FlockOpen

try:
    with FlockOpen('/tmp/my.lock', 'w', blocking=False) as lock:
        lock.fd.write('Locked\n')
except IOError as e:
    print('Can not acquire lock')

共享阻塞锁:

from flockcontext import Flock

with FlockOpen('/tmp/my.lock', 'w', exclusive=False) as lock:
    lock.fd.write('Locked\n')

在上下文中获取并释放:

from flockcontext import FlockOpen

with FlockOpen('/tmp/my.lock', 'w') as lock:
    print('Lock acquired')
    lock.fd.write('Locked\n')

    lock.release()
    print('Lock released')

    lock.acquire()
    print('Lock acquired')
    lock.fd.write('Locked\n')

锁定已打开的文件:

from flockcontext import Flock

with open('/tmp/my.lock', 'w') as fd:
    with Flock(fd):
        fd.write('Locked\n')

许可证

  • 免费软件:BSD许可证

历史记录

0.4.0(2019-07-03)

  • 将Docker用于从2.7到3.7的多个Python版本测试
  • 添加正确的BSD许可证文件
  • 添加锁定锁定超时
  • 将开发状态升级到生产/稳定状态

0.3.1(2015-08-24)

  • 为代码示例添加语法突出显示
  • 在自述文件中添加flock manager示例

0.3.0(2015-08-21)

  • 添加flockopen上下文管理器。

0.2.0(2015-08-20)

  • 增加群体关系,并根据上下文获取能力。

0.1.0(2015-08-19)

  • 添加flock上下文管理器。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java泛型和基类   ProcessBuilder或DefaultExecutor启动的“RunAs”子进程的java读取标准输出   java应用程序在尝试登录时突然停止   Java:神秘的Java未捕获异常处理程序[带代码]   java JavaFX NumberAxis自动范围无限循环   最新版本和旧版本冲突的java双Maven依赖关系   java如何导入带有部署变量类名的静态函数?   编译器构造不同的JDK更新会产生不同的Java字节码吗?   java无法在struts 1.1中上载任何超过250 MB大小的文件   java调整jcombobox下拉菜单的宽度   java如何在某些情况下忽略@SQLDelete注释   在Eclipse for Java EE developers edition中禁用HTML警告   java HttpUrlConnection重置请求属性   java@Provider资源未在rest应用程序中注册   java TOP N使用JPA连接   java在使用反射调用方法时区分int和Integer参数