2017-10-13 85 views
1

我确定这是因为我做错了什么。Django无法处理并发请求?我在哪里做错了

我用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() 

当我点击我的网站,它会发送异步get请求该call_foo()函数,它看起来像我应用程序无法处理其他请求。例如,如果我打开主页url,它会一直等待,直到foo()中的上述子进程调用完成后才会显示。

有谁知道我做错了什么地方?谢谢

回答

0

你使用了哪个数据库? Django使用数据库为每个线程创建一个连接,并且如果您的数据库在单线程上运行或已满,可能会导致阻塞。

对于调试,我会尝试将您的子过程更改为简单,需要很长时间(可能睡觉和打印)的东西。看看是否仍然阻止。

+0

我正在使用SQL Server – Feiiiiiiiiiiiii