锁定某些内容并将状态保存在数据库中。

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


锁定某些内容并将状态保存在数据库中。

安装

pip install django-db-lock

设置

INSTALLED_APPS = [
    ...
    'django_db_lock',
    ...
]

在项目内部使用

import uuid
from django_db_lock import acquire_lock
from django_db_lock import release_lock

def view01(request):
    lock_name = "view01lock"
    worker_name = str(uuid.uuid4())
    timeout = 10
    locked = acquire_lock(lock_name, worker_name, timeout)
    if locked:
        try:
            ....
        finally:
            release_lock(lock_name, worker_name)
    ...

使用outout项目

import requests

def view02(request):
    data = {
        "lock_name": "view02lock",
        "worker_name": str(uuid.uuid4()),
        "timeout": 10,
    }
    response = request.post("http://api.server/system/dblock/acquire-lock", data=data)
    if response["result"]:
        try:
            ....
        finally:
            request.post("http://api.server/system/dblock/acquire-lock", data=data)
    ...

设置中的“应用程序选项”。py

  • 注册“Django_db_lock_admin”

    Register LockAdmin in django’s default admin site. Default to False.

  • 启用“django_db_lock_csrf_protect”

    Enable csrf-protect for django-db-lock’s views. Default to False.

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

推荐PyPI第三方库


热门话题
JavaI编写了一个通用的有序数组类,在比较元素时,insert方法出现空指针错误   StackPane中另一个窗格下方窗格上的java JavaFX鼠标事件   java isReady()在关闭状态下返回true为什么?   Java:带循环的数组(匹配项)   java ResponseEntity如何处理不同于200 ok的状态代码?   java while循环jtextfield只接受字母   java为什么gluProject不使用LWJGL提供正确的屏幕空间坐标   java在AspectJ中禁用/避免执行通知   JAVAlang.SecurityException:权限拒绝:启动意图{act=安卓.settings.USAGE_ACCESS_settings}   java可流动多实例调用活动输出参数   java您能自动将Eclipse的调试器附加到子流程吗?   在Java中分叉进程有效地重定向输入/输出/错误流   itext使用现有证书、中间文件和远程创建的签名,使用itextpdf for Java对PDF进行两步签名   爪哇苹果。应用程序(使用Ant的JarBundler构建)将无法运行