看到django異步大家的反應應該是celery這樣的消息隊列組件。如今用的最多的最推薦的也是這樣的方式。然而我這需求就是請求來了,運行一個小程序。可是又不能確定這個小程序啥時候運行完。響應又要及時,丟給隊列處理當然能夠。可是為了簡單,決定直接起個線程跑跑。 (當然這僅僅是實驗,應用規模也非常小,假設並發高。會有非常多問題)
從view.py中截取了這段代碼:
@login_required
def search_area(request):
prints = PrintThread()
prints.start()
return retrieve(request, 'Area', 'areasearche.html', [{'name':'areaname', 'mode': 'contains'}])
##通過thread 實現django中
import threading
import time
class PrintThread(threading.Thread):
def run(self):
print "start.... %s"%(self.getName(),)
for i in range(30):
time.sleep(1)
print i
print "end.... %s"%(self.getName(),)
從運行的結果來看是能夠完畢需求的,
start.... Thread-7
0
1
2
[24/Oct/2014 15:09:30] "GET /media/js/hawk.js HTTP/1.1" 304 0
3
...
26
27
28
29
end.... Thread-7
對於定時延遲任務,還有高並發的異步任務還用mq來的方面。
本文出自 “orangleliu筆記本” 博客,轉載請務必保留此出處http://blog.csdn.net/orangleliu/article/details/41961295
作者orangleliu 採用署名-非商業性使用-同樣方式共享協議
