数据库锁定
项目描述
用法
最简单的用法是将其用作上下文管理器
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分支,移除管理命令,改用celery任务
- v1.2.1
修复迁移到UUIDField for PostGres的问题
- v1.2.0
将id移至UUIDField,添加代码质量检查和CI
- v1.1.0
将模型重命名为NonBlockingLock,并添加更多功能
- v1.0.1
修正测试和代码清理
- v1.0.0
初始发布。
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。
源分发
django-db-locking-2.0.4.tar.gz (9.7 kB 查看哈希值)
构建分发
关闭
django-db-locking-2.0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e328ca3bc8ea79e42a7c235775c85de82f65a2ac8a16bc81190799369e4fd92f |
|
MD5 | cd04f079fda7ddd19b953b25e4e2d2be |
|
BLAKE2b-256 | 32ff96980fd817f939575c60a9cfed3f24931e1632005e204a2f488c96f940aa |
关闭
django_db_locking-2.0.4-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7d6759624c368c634fa2e345b620911765ee606ea2bce8528db66a995165add9 |
|
MD5 | 33d22e08c637a5293a052251a2142465 |
|
BLAKE2b-256 | 81d2a3550e9fa07aae3741a96f9fb844dadc72f6d551bddb8bedce913a3110e5 |