我确定这是因为我做错了什么。
我用Django建立了一个网站。在模型中,我有一个子进程调用:
class MyModel:
...
def foo(self):
args = [......]
pipe = subprocess.Popen(args, stdout=subproccess.PIPE, stderr=subprocess.PIPE)
在我看来:
def call_foo(request):
my_model = MyModel()
my_model.foo()
当我点击我的网站向这个call_foo()函数发送async get请求时,似乎我的应用程序无法处理其他请求。例如,如果我打开主页url,它会一直等待,直到foo()中的上述子进程调用完成后才会显示。
有谁知道我做错了什么?感谢
答案 0 :(得分:0)
您使用的数据库是什么? Django使用数据库为每个线程创建一个连接,如果您的数据库在单个线程上运行或已满,则可能导致阻塞。
对于调试,我会尝试将您的子流程更改为需要很长时间(可能是睡眠和打印)的简单操作。看看是否仍然阻止。