django的redis锁装饰器
dumblock的Python项目详细描述
这个包提供了试图获取redis锁的装饰器。 在调用修饰函数之前。
安装
pip install dumblock
用法
在django设置中设置DUMBLOCK_REDIS_URL:
DUMBLOCK_REDIS_URL="redis://localhost:6379"
LoCyOrthExeX装饰工。在装饰函数启动之前,尝试获取redis锁
用指定的键。如果成功获取锁,则继续执行
功能。否则,请立即返回。key参数可以
包含模板字符串,wich将用args和kwargs呈现,
传递给函数。
示例:
@lock_or_exit('lock_work_{}')defworkwork(x):passworkwork(3)# Will try to acquire redis lock 'lock_work_3'
装饰工。在装饰函数启动之前,尝试获取redis锁 用指定的键。如果成功获取锁,则继续执行 功能。否则,请立即返回。key参数可以 包含模板字符串,wich将用args和kwargs呈现, 传递给函数。
示例:
@lock_or_exit('lock_work_{}')defworkwork(x):passworkwork(3)# Will try to acquire redis lock 'lock_work_3'
锁定等待
装饰工。在装饰函数启动之前,尝试获取redis锁 使用指定的密钥,如果需要,等待waittime秒。如果锁定 已成功获取,请继续执行该函数。否则, 提高dumblock.TimeoutError。key参数可以包含 模板字符串wich将用args和kwargs呈现,传递给 功能。
示例:
@lock_wait('lock_work_{}',waittime=4)defworkwork(x):passworkwork(3)# Will try to acquire redis lock 'lock_work_3' for 4 seconds