zoukankan      html  css  js  c++  java
  • [django] 利用多线程添加异步任务

    看到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 採用署名-非商业性使用-同样方式共享协议


  • 相关阅读:
    Spark介绍与环境搭建
    Kafka基本操作
    Hadoop的HDFS概述
    hadoop环境搭建
    常用小工具
    mac机
    Eclipse使用
    微信公众号开发
    PM2
    JS 零散知识点
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7248326.html
Copyright © 2011-2022 走看看