Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:使视图一次只运行一次(互斥/锁/信号量)_Python_Django_Concurrency - Fatal编程技术网

Python Django:使视图一次只运行一次(互斥/锁/信号量)

Python Django:使视图一次只运行一次(互斥/锁/信号量),python,django,concurrency,Python,Django,Concurrency,在Django视图中,是否有一种简单的方法(最好是内置或库)允许一次最多1个线程/进程?我猜是一种信号灯。理想情况下,如果进程已经在运行,我可以让其他线程返回响应/ 它不需要处理任何分布式系统,因此本地管理适合我的用例 使用Django 1.11时,我可能没有理解您所说的“Django视图中最多一个线程/进程”的含义 最简单的方法——我不建议这样做——是运行: /manage.py runserver--nothreading 现在,这就是一次将其锁定为单个python进程到单个请求,而不是每个

在Django视图中,是否有一种简单的方法(最好是内置或库)允许一次最多1个线程/进程?我猜是一种信号灯。理想情况下,如果进程已经在运行,我可以让其他线程返回响应/

它不需要处理任何分布式系统,因此本地管理适合我的用例

使用Django 1.11时,我可能没有理解您所说的“Django视图中最多一个线程/进程”的含义

最简单的方法——我不建议这样做——是运行:
/manage.py runserver--nothreading

现在,这就是一次将其锁定为单个python进程到单个请求,而不是每个视图。。但是每一个请求


文档:

您可能只需要使用一个文件或其他东西

差不多

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")