锁定某些内容并将状态保存在数据库中。
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.