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

來源:互聯網
上載者:User

標籤:contain   rgb   方式   text   共用   ret   sni   筆記本   一個   

看到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] 利用多線程添加非同步任務

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.