是否有一种简单的方法(理想的是内置的还是库的)在Django视图中一次最多允许1个线程/进程?我猜是一种信号量。理想情况下,如果进程已经在运行,我可以使其他线程返回响应。
它不需要处理任何分布式系统,因此对于我的用例来说,本地管理是可以的。
使用Django 1.11
答案 0 :(得分:0)
我可能缺少您的意思,即“在Django视图中一次最多有1个线程/进程”
最简单的方法(我不建议这样做)是运行:
./manage.py runserver --nothreading
现在,这将其锁定到单个python进程-一次到单个请求,而不是每个视图..而是每个请求。
文档:https://docs.djangoproject.com/en/dev/ref/django-admin/#cmdoption-runserver-nothreading
答案 1 :(得分:0)
您可能只使用文件或其他东西
类似
def my_view(request):
if os.path.exists("/some/file.txt"):
return HTTPResponse(open("/some/file.txt","rb").read())
try:
open("/some/file.txt","wb") as f:
f.write("Actively running this already1")
return render_template(my_template,...)
finally:
os.remove("/some/file.txt")