2017-10-13 16 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() 

私はそれが非同期このcall_foo()関数への要求を取得する送信私のウェブサイトをクリックすると、それは私のように思えるのモデルでは、私は、サブプロセスの呼び出しを持っていますアプリは他のリクエストを処理できません。例えば、私がホームページのURLを開いた場合、それは待っていて、上記のfoo()のサブプロセス呼び出しが終了するまで表示されません。

どこに間違っていたのですか?ありがとう

答えて

0

どのようなデータベースをお使いですか? Djangoは、DBを使用するすべてのスレッドの接続を作成します。これは、DBが単一のスレッドで実行されているか、いっぱいになっている場合にブロックされる可能性があります。

デバッグの場合、私はあなたのサブプロセスを何かに単純なものに変更しようとします。これは時間がかかります(おそらくスリープ状態で印刷されます)。それがまだブロックしているかどうか確認してください

+0

私はSQL Serverを使用しています – Feiiiiiiiiiiiii

関連する問題