跳转到主要内容

一个简单的基于XML-RPC的锁守护进程,支持隔离。

项目描述

使用lockd API

lockd通过在指定目录中维护锁文件,提供了一个轻量级的锁定机制,以支持长时间运行的资源。

>>> import tempfile
>>> lockdir = tempfile.mkdtemp()
>>> from gocept.lockd.lockd import Lockd
>>> daemon = Lockd(lockdir)

资源通过字符串标识,执行锁定的客户端也通过另一个字符串标识

>>> daemon.lock('resource1', 'client1')

一旦资源被锁定,就无法再次锁定

>>> daemon.lock('resource1', 'client2')
Traceback (most recent call last):
Exception: Resource already locked by 'client1'

然而,可以并行锁定其他资源

>>> daemon.lock('resource2', 'client2')

除了锁定资源的客户端之外,其他客户端不能解锁它

>>> daemon.unlock('resource1', 'client2')
Traceback (most recent call last):
Exception: Resource locked by 'client1' cannot be unlocked by 'client2'

锁定资源的客户端可以再次解锁

>>> daemon.unlock('resource1', 'client1')

一旦解锁,就不能再次解锁

>>> daemon.unlock('resource1', 'client1')
Traceback (most recent call last):
Exception: Resource not locked

重要安全提示

资源标识和客户端授权不在lockd的范围内。它只应在受信任的环境中使用和公开。

清理

>>> import shutil
>>> shutil.rmtree(lockdir)

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

gocept.lockd-0.1.tar.gz (4.0 kB 查看哈希)

上传时间:

由以下支持