2016-09-19 40 views
0

在當前場景中result2不會被執行,直到result1完成其執行。我想執行select * from Test1select * from Test2異步.result2不應該等待結果1完成它的執行。最後同時發送兩個結果集給客戶端。如何在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頻道 –

回答

2

Celery可以幫助你。您可以啓動異步任務並等待它們在while循環中完成。它需要一些設置和服務器上的附加軟件。

對我來說,您的查詢似乎很長時間運行。我不認爲在單個請求中等待他們是關於用戶體驗的最佳解決方案,但這可能是另一個話題。