[django] 利用多線程添加異步任務
阿新 • • 發佈:2017-07-28
1.5 size lan sel ins post target span class
從運行的結果來看是能夠完畢需求的,
看到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 採用署名-非商業性使用-同樣方式共享協議
[django] 利用多線程添加異步任務