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锁 使用指定的密钥,如果需要,等待waittime秒。如果锁定 已成功获取,请继续执行该函数。否则, 提高dumblock.TimeoutErrorkey参数可以包含 模板字符串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

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

推荐PyPI第三方库


热门话题
JUnit抛出java。com的lang.NoSuchMethodError。谷歌。常见的收集无法忍受。尝试发现   java如何使用PreparedStatement在Oracle中的嵌套表中插入行   java如何编辑json列表?   java AWT机器人类构造函数错误   java在另一个类的UI线程上运行   java拦截对邮件程序操作的调用   java Apache tomcat web应用程序   同步化块。僵局JAVA   如何使用java在数组中输入   JavaSwing:表格单元渲染器创建无限循环   固定高度java嵌套垂直循环视图(滚动问题)   java扫描程序没有扫描所有字段?   java SimpleXoPlayer配置问题   C#相当于Java的数组。fill()方法   将具有return语句的Java普通for循环转换为Java8 IntStream   反射Java类能否在运行时向自身添加方法?   Java Web浏览器连接问题   java如何将信息从对话框发送到电子邮件