1. 程式人生 > >[django] 利用多線程添加異步任務

[django] 利用多線程添加異步任務

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] 利用多線程添加異步任務