锁装饰工
lockorator的Python项目详细描述
这个包提供了decorators,它们将在 调用修饰函数。
安装
pip install lockorator
用法
这个包提供了两种风格的锁装饰器:redis和 异步。两种口味都有相同的原料药。
包lockorator.asyncio还提供异步锁修饰符 与trio兼容。
包lockorator.redis提供redis锁修饰符。
要使用redis锁,请在您的环境中设置LOCKORATOR_REDIS_URL:
export LOCKORATOR_REDIS_URL="redis://localhost:6379"
api
LoCyOrthExeX
装饰工。在装饰函数启动之前,尝试使用 指定的标识符。如果成功获取锁,则继续 执行函数。否则,请立即返回。那id 参数可以包含模板字符串,其中将使用参数呈现 以及传递给函数的Kwargs。
示例:
fromlockorator.asyncioimportlock_or_exit@lock_or_exit('lock_work_{}')defworkwork(x):passworkwork(3)# Will try to acquire lock 'lock_work_3'
锁定等待
装饰工。在装饰函数启动之前,尝试使用 指定的标识符,如果需要,等待waittime秒。如果 已成功获取锁,请继续执行该函数。 否则,提高lockorator.TimeoutError。id参数可以 包含模板字符串,wich将用args和kwargs呈现, 传递给函数。
示例:
fromlockorator.redisimportlock_wait@lock_wait('lock_work_{}',waittime=4)defworkwork(x):passworkwork(3)# Will try to acquire lock 'lock_work_3' for 4 seconds