2016-09-19 17 views
0

現在のシナリオresult2ではresult1まで実行されず、実行が終了します。実行したいselect * from Test1select * from Test2非同期的に.result2はutile result1の実行を待つべきではありません。最後に結果セットを一度にクライアントに送ります。djangoでpostgreクエリを非同期的に実行する方法

def fetchQueryData(request): 
     cur=connection.cursor() 

     cur.execute("select * from Test1") 
     result1=cur.fetchall() 
     json1=result1[0][0] 

     cur.execute("select * from Test2") 
     result2=cur.fetchall() 
     json2=result2[0][0] 

     cur.close() 

     return JsonResponse([json1,json2]) 
+1

[ブログの投稿](http://techspot.zzzeek.org/2015/02/15/asynchronous-python-and-databases/)はあなたにとって興味深いかもしれません – dahrens

+0

django channels –

答えて

2

Celeryお手伝いできます。非同期タスクを開始し、それらがwhileループで完了するのを待つことができます。それはあなたのサーバー上のいくつかの設定と追加のソフトウェアが必要です。

私にとって、あなたの質問はかなり長引いているようです。 1回のリクエストでそれらを待つのがユーザーエクスペリエンスに関する最善の解決策だとは思えませんが、それはおそらく別のトピックです。

関連する問題