数据库锁定

django-db-locking的Python项目详细描述


https://coveralls.io/repos/github/vikingco/django-db-locking/badge.svg?branch=masterhttps://travis-ci.org/vikingco/django-db-locking.svg?branch=master

用法

最简单的用法是将其用作上下文管理器:

with NonBlockingLock.objects.acquire_lock(obj=model_obj):
    model_obj.do_something()

或者您可以自己跟踪锁:

try:
    lock = NonBlockingLock.objects.acquire_lock(obj=model_obj)
except AlreadyLocked:
    return False

model_obj.do_something()
lock.release()

如果没有django模型,或者希望能够指定锁名称 你自己也可以这样做:

# this will raise AlreadyLocked, if it's locked
lock = NonBlockingLock.objects.acquire_lock(lock_name='my_lock')
do_something()
lock.release()

请注意,锁可能会自动过期。有一个lock_max_age设置,您可以在其中为整个django代码库中的锁指定默认的锁释放值。通过设置max_age参数,可以覆盖每个锁的该值。

测试

您可以使用

tox

释放量

v2.0.0版:
合并master和pre-django-1.8分支 删除有利于芹菜任务的管理命令
第1.2.1版:
修复迁移到UuidField进行Postgres时出现的问题
v1.2.0版:
将id移动到uuidfield,添加代码质量检查和ci
v1.1.0版:
将模型重命名为nonblockinglock并添加其他功能
v1.0.1版:
更正的测试和代码清理
v1.0.0版:
初始释放。

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

推荐PyPI第三方库


热门话题
java需要设置框架。可设置大小(false)以重新绘制()   java我对PDF文件感到困惑   为什么是太阳。jvm。热点。调试器。DebuggerException:无法打开二进制文件`?   设置结果为textview时出现java空指针异常   我应该使用什么同步原语在Java中实现事件驱动程序框架?   java为什么WindowClosing处理程序在退出程序之前不执行后台任务?   如何将“20170712T18:43:04.000Z”转换为安卓或java中的相对时间?   Java,获取按键的时间长度,currentTimeMillies()始终为24   maven构建的java可执行Jar找不到logback。xml   java在其外部的函数中使用for循环中的值   java如何以表格格式将不同长度的数据对齐   java Play 2.5 WebSocket连接构建   maven而非eclipse的java强制转换问题   java如何在JFreeChart中使X轴上的值水平?   构建Java Windows应用程序以访问在线MySQL数据库需要什么   java添加构造函数会出错吗?这没有道理,请帮忙,编程问题   java在一个jframe中的两个JPanel中使用两个绘制方法   java数学或逻辑问题   java如何复制Androids库存摄像头方向更改